Dos Modunda Print

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Nemesis2005
Üye
Mesajlar: 136
Kayıt: 18 Oca 2005 05:24
Konum: İzmir

Dos Modunda Print

Mesaj gönderen Nemesis2005 »

Dos modunda çıktı almak istiyorum bunu nasıl yada hangi componentler le yapabilirim
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

:ara zreport

ücretsiz güzel bi bileşen
.-.-.-.-.-.-.-. ^_^
mucit
Üye
Mesajlar: 83
Kayıt: 24 Kas 2004 10:41
Konum: BURSA

Mesaj gönderen mucit »

Merhaba,

Bunun için yazmak istediğin bilgiyi önce bir text dosyaya satır satır yazdıktan sonra bu dosyayı aşağıdaki gibi SpoolFile Fonksiyonu ile istediğin yazıcıya yazdırabilirsin.

Kod: Tümünü seç

// YaziYaz('C:\Temp\Temp.prn', Printer.Printers[Printer.PrinterIndex]);


procedure YaziYaz(const PrnFile, PrinterName: String);
Var
 AFile: TextFile;
begin
 AssignFile(AFile, PrnFile);
 ReWrite(AFile);
 try

  WriteLn(AFile,'Yazılacak Satır 1');
  WriteLn(AFile,'Yazılacak Satır 2');
  WriteLn(AFile,'Yazılacak Satır 3');
  .
  .
  .


 finally
  CloseFile(AFile);
 end;
 If SpoolFile(PrnFile, PrinterName) <> 0 then
   MessageDlg('Belge Yazdırılamıyor !',mtError,[mbOK],0);
end;


Function SpoolFile(const FileName, PrinterName: string): Integer;
var
  Buffer: record
    JobInfo: record
      Path: PChar;
      JobID: DWORD;
    end;
    PathBuffer: array[0..255] of Char;
  end;
  SizeNeeded: DWORD;
  Handle: THandle;
  PrtName: string;
  ok: Boolean;
begin
  If not FileExists(FileName) Then
  begin
   Result:= 99;
   Exit;
  end;
  PrtName:= PrinterName;
  if PrtName = '' then
    PrtName:= TrimPrinter(Printer.Printers[Printer.PrinterIndex]);
  ok:= False;
  if OpenPrinter(PChar(PrtName), Handle, nil) then
    if AddJob(Handle, 1, @Buffer, SizeOf(Buffer), SizeNeeded) then
      if CopyFile(PChar(FileName), Buffer.JobInfo.Path, True) then
        if ScheduleJob(Handle, Buffer.JobInfo.JobID) then
          ok := True;
  if not ok then
  begin
   Result:= GetLastError
  end else begin
   If FileExists(FileName) Then
   begin
    try
     DeleteFile(PChar(FileName));
    finally
    end;
   end;
   Result := 0;
  end;
end;

Kolay gelsin..
Cevapla