Hi, map the USB Port to a Virtual Serial Port and open the Port as File using CreateFile using name "\\.\COMxxx" Then write to the port with the usual API file commands
Even better wrap this to a Stream (or FileStream) descendant and use Stream.Write commands Read and Seek should do nothing I hope this helps Chriss On Tue, Jan 13, 2015 at 3:13 PM, Virgo Pärna <virgo.pa...@mail.ee> wrote: > On Tue, 13 Jan 2015 10:41:55 -0200, Philippe <phili...@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.pa...@mail.ee > > _______________________________________________ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal >
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal