[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