Since you specify LPT1:, I assume you are using Windows. Obviously the solution for Linux would be different than Windows. I am not quite sure about FPC, but in Delphi you basically have two choices.

1) Capture the USB printer to an LPT port, then attempt assign(printer, 'LPTx:'); (not a good solution in my opinion).

2) Open the Windows printer in RAW mode. I've used this style of printing to a Eltron USB thermal printer and it worked well. The procedure below is quite similar to the one I used.

Please write back and let me know if this routine works.

(Begin Procedure -- From Delphi newsgroups)
uses WinSpool;

procedure WriteRawStringToPrinter(PrinterName: String; S: String);
var
  Handle: THandle;
  N: DWORD;
  DocInfo1: TDocInfo1;
begin
  if not OpenPrinter(PChar(PrinterName), Handle, nil) then
    begin
     ShowMessage('error ' + IntToStr(GetLastError));
     Exit;
    end;
  with DocInfo1 do begin
    pDocName := PChar('test doc');
    pOutputFile := nil;
    pDataType := 'RAW';

  end;
  StartDocPrinter(Handle, 1, @DocInfo1);
  StartPagePrinter(Handle);
  WritePrinter(Handle, PChar(S), Length(S), N);
  EndPagePrinter(Handle);
  EndDocPrinter(Handle);
  ClosePrinter(Handle);
end;
(End Procedure)

Tom




Roberto Gonçalves Barreiro wrote:
I'm a delphi programmer.
I'm printing a report using:
assign(wPrinter,'Lpt1:')
and it goes ok in paralel priner.
I did assign(wPrinter,'USB001') and it did not work.
Do you know how to print in USB printers?
I thanks a lot if you can help me.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to