[fpc-pascal] raw printing throught USB port / WINDOWS

Virgo Pärna virgo.parna at mail.ee
Tue Jan 13 14:13:34 CET 2015


On Tue, 13 Jan 2015 10:41:55 -0200, Philippe <philippe at quarta.com.br> wrote:
>
> First: could anyone tell me I have the possibility to access USB 
> printer in raw mode with the "basic" FPC package (not using Lazarus 
> packages/components)?
>

    If you have USB printer installed , then winunits-base package has winspool unit.
    Following sample is with string beeing ansisstring and Char AnsiChar.

procedure PrintCodesToPrinter(const APrinterName, APrintData: string);
type
  TDoc_Info_1 = record
    DocName,
    OutputFile,
    Datatype: PChar;
  end;
var
  Written: DWORD;
  DocInfo: TDoc_Info_1;
  PHandle: THandle;
begin
  if APrintData = '' then //nothing to print
    exit;
  DocInfo.DocName := 'POS';
  DocInfo.OutputFile := nil;
  DocInfo.Datatype := 'RAW';
  if not OpenPrinter(PChar(APrinterName), PHandle, nil) then
    raise Exception.CreateFmt('Error opening printer "%s"',
[APrinterName]);
  try
    StartDocPrinter(PHandle, 1, @DocInfo);
    StartPagePrinter(PHandle);
    WritePrinter(PHandle, @APrintData[1], Length(APrintData), Written);
    EndPagePrinter(PHandle);
    EndDocPrinter(PHandle);
  finally
    ClosePrinter(PHandle);
  end;
end;

-- 
Virgo Pärna 
virgo.parna at mail.ee




More information about the fpc-pascal mailing list