Dot Matrix Print Etme (Port ile birlikte)

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
ardahan
Üye
Mesajlar: 144
Kayıt: 26 Oca 2004 05:17
Konum: İstanbul - Kocaeli - Ardahan
İletişim:

Dot Matrix Print Etme (Port ile birlikte)

Mesaj gönderen ardahan »

Kod: Tümünü seç


uses WinSpool,Printers;

function GetCurrentPrinterHandle: THandle;
var
  Device, Driver, Port : array[0..255] of char;
  hDeviceMode: THandle;
begin
  Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
  if not OpenPrinter(@Device, Result, nil) then
    RaiseLastWin32Error;
end;

procedure Yazdir;
var
  ...
  F: TextFile;
  PrinterName: string;
 
  hPrinter : THandle;
  pInfo: PPrinterInfo2;
  bytesNeeded: DWORD;
begin
  PrinterName:= '';
  Printer.PrinterIndex := -1; // set to default printer
  hprinter := GetCurrentPrinterHandle;
  try
    Winspool.GetPrinter( hPrinter, 2, Nil, 0, @bytesNeeded );
    pInfo := AllocMem( bytesNeeded );
    try
      Winspool.GetPrinter( hPrinter, 2, pInfo, bytesNeeded, @bytesNeeded );
      try
        PrinterName:= Format( '%s', [pInfo^.pServerName]) + '\' + Format( '%s',[pInfo^.pShareName]);
      except
        PrinterName:= 'LPT1';
      end;
    finally
      FreeMem( pInfo );
    end;
  finally
    ClosePrinter( hPrinter );
  end;
 
  Assignfile(F, PrinterName);
  ...
end;
Cevapla