Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2014-12

raw printing throught USB port / WINDOWS

8 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Philippe

I need a solution (unit?) to access printer (matricial like LX80, LX300 and so on) in raw mode throught USB port directly from FPC program build in mode win32 or win64.

apreciate any ideia

thanks

Philippe

Reply by email

LacaK
to Philippe
You can use:
    Printer.RawMode := True;
    Printer.BeginDoc;
    ....
    Printer.EndDoc;
-Laco.
Show quoted text 16 lines
I need a solution (unit?) to access printer (matricial like LX80, LX300 and so on) in raw mode throught USB port directly from FPC program build in mode win32 or win64. apreciate any ideia thanks Philippe ------------------------------------------------------------------------ _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply by email

LacaK
to Philippe

Is the printer already known to Windows (can you print to that printer from others windows applications) ?
If yes, then you can use:

  Printer.SetPrinter('Printer name');

-Laco.

Show quoted text 40 lines
Em 16.12.2014 09:27, LacaK escreveu: > You can use: > Printer.RawMode := True; > Printer.BeginDoc; > .... > Printer.EndDoc; > -Laco. > Thank you, but that the part I already knew (saw it searching in Google). > The question is how to select the USB port and create Printer ( > win32/win64 ). > >> I need a solution (unit?) to access printer (matricial like LX80, >> LX300 and so on) in raw mode throught USB port directly from FPC >> program build in mode win32 or win64. >> >> apreciate any ideia >> >> thanks >> >> Philippe >> >> ------------------------------------------------------------------------ >> _______________________________________________ >> fpc-pascal maillist - >> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal > > > _______________________________________________ > fpc-pascal maillist - > http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal > ------------------------------------------------------------------------ _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply by email

Philippe
to LacaK

good! ... I'll try that ... simple!!!

thank you!

LacaK wrote
Is the printer already known to Windows (can

you print to that printer from others windows applications) ?

If yes,

then you can use:

Printer.SetPrinter('Printer name'); -Laco. >
LacaK wrote
> >> You can use: >>
Printer.RawMode := True;
>> Printer.BeginDoc; >> .... >>
Printer.EndDoc;
>> -Laco. > >> Thank you, but that the part I

already knew (saw it searching in Google).

> The question is how to

select the USB port and create Printer ( win32/win

> >> 5px; width:

100%;">

> px; margin-left: 5px; width: 100%;"> > > I need a

solution (unit?) to access printer (matricial li

Show quoted text 10 lines
> >> 32 or win64. >> >> apreciate any ideia >> >> thanks >> >> Philippe >>

-------------------------

>> >>

Reply by email

Philippe
to LacaK: Is the printer already known to Windows (can you print to that printer from others…
LacaK wrote 34 lines
Is the printer already known to Windows (can you print to that printer from others windows applications) ? If yes, then you can use: Printer.SetPrinter('Printer name'); -Laco. > Em 16.12.2014 09:27, LacaK escreveu: > >> You can use: >> Printer.RawMode := True; >> Printer.BeginDoc; >> .... >> Printer.EndDoc; >> -Laco. > >> Thank you, but that the part I already knew (saw it searching in >> Google). > The question is how to select the USB port and create Printer ( > win32/win > >> 5px; width: 100%;"> > ; margin-left: 5px; width: 100%;"> > > I need a solution (unit?) to access printer (matricial > >> win32 or win64. >> >> apreciate any ideia >> >> thanks >> >> Philippe >> ------------------------- >>

I have been busy with other stuff ... back to this topic!

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)?

_______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal [1]

Links:
------
[1] http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply by email

Virgo Pärna
to Philippe
Philippe wrote 5 lines
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

Reply by email

Chriss Kalogeropoulos
to Virgo Pärna

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

Virgo Pärna wrote 51 lines
On Tue, 13 Jan 2015 10:41:55 -0200, Philippe 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 _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply by email