Wiki source for KeyPgOpenLpt


Show raw source

{{fbdoc item="title" value="OPEN LPT"}}----
Open a printer device

{{fbdoc item="syntax"}}##
**Open Lpt** ["[LPT[x]:][//Printer_Name//][,//TITLE=Doc_Title//][,//EMU=TTY//]"] [For Input|Output] [[KeyPgAs|as]] #//filenumber//
##
{{fbdoc item="usage"}}##
**Open Lpt** "LPT..." [[KeyPgAs|as]] [#]//filenumber//
//or//
//result// = **Open Lpt**( "LPT..."[,] [[KeyPgAs|as]] [#]//filenumber// )
##
{{fbdoc item="param"}}
##//x//##
Specifies a port number. If omitted, output is sent to the system print spooler.
##//Printer_Name//##
Name of printer to open. This parameter is ignored on DOS.
##//TITLE=Doc_Title//##
Title of the print job as seen by the printer spooler. This parameter is ignored on DOS.
##//EMU=TTY//##
Emulation of TTY output on a windows GDI printer, using driver text imaging. This parameter is ignored on DOS and Linux.
##For Input|Output##
clause is allowed for compatibility, but it is ignored.
##//filenumber//##
An unused file number to assign to the device.

{{fbdoc item="ret"}}
A 32 bit ##[[KeyPgLong|Long]]##: ##0## is returned if ##**Open Lpt()**## completed successfully, otherwise a non-zero value is returned to indicate failure.

{{fbdoc item="desc"}}
##**Open Lpt**## opens a connection to a printer device. The connection is treated like a file, so data may be written to the printer using ##[[KeyPgPrint|Print]]## and ##[[KeyPgPutfileio|Put #]]## commands.

Any printer attached to the system may be opened with ##**Open Lpt**##

##**Open Lpt** "LPT:" ...## will try to open the default printer on Windows and Linux, and ##"LPT1:"## on DOS.

##[[KeyPgLprint|Lprint]]## will automatically try to open the default printer on Windows and Linux, and ##"LPT1:"## on DOS.

The error code returned by ##**Open Lpt**## can be checked using ##[[KeyPgErr|Err]]## in the next line. The function version of ##**Open Lpt**## returns directly the error code as a 32 bit ##[[KeyPgLong|Long]]##.

Platform specific notes:

==Windows==
The argument ##EMU=TTY## assumes printable ASCII or Unicode text, and applies printer driver text imaging to the input. ##EMU=TTY## also allows the usage of CR, LF, BS, TAB, FF, etc., for virtual print-head movement...even when the printer is a GDI printer and therefore doesn't itself understand these special characters. If ##",EMU=TTY"## is omitted, the data must be sent in the printer's language (ESC/P, HPGL, ""PostScript"", etc...). Other useful emulation modes aren't supported yet.

==Linux==
A printer spooler available through ##lp## must be installed to access printers by name or a default printer. Spooler access was tested only with CUPS, but other spoolers may work that are invoked through ##lp##. Port are zero-based on Linux. ##"LPT1:"## corresponds with ##"/dev/lp0"##.

The data must be sent in the printer's language (ESC/P, HPGL, ""PostScript"", etc...). Emulation modes aren't supported yet.

==DOS==
""FreeBASIC"" does not support print spoolers on DOS. Printers must be accessible through ##"LPTx:"##.

The data must be sent in the printer's language (ESC/P, HPGL, ""PostScript"", etc...). Emulation modes aren't supported yet.

{{fbdoc item="ex"}}
{{fbdoc item="filename" value="examples/manual/fileio/openlpt1.bas"}}%%(freebasic)
' Send some text to the Windows printer on LPT1:, using driver text imaging.
Open LPT "LPT1:EMU=TTY" For Output As #1
Print #1, "Testing!"
Close
%%
{{fbdoc item="filename" value="examples/manual/fileio/openlpt2.bas"}}%%(freebasic)
' Sends contents of text file test.txt to Windows printer named "ReceiptPrinter"
Dim RptInput As String
Dim PrintFileNum as integer, RptFileFileNum as integer

RptFileFileNum = Freefile
Open "test.txt" For Input As #RptFileFileNum

PrintFileNum = Freefile
OPEN LPT "LPT:ReceiptPrinter,TITLE=ReceiptWinTitle,EMU=TTY" AS _
#PrintFilenum

While (EOF(RptFileFileNum) = 0)
Line Input #RptFileFileNum, RptInput
Print #PrintFileNum, RptInput
Wend

Close #PrintFileNum ' Interestingly, does not require CHR(12). But if pagination is desired, CHR(12) is the way.

Close #RptFileFileNum

Print "Press any key to end program..."
GetKey

End
%%

{{fbdoc item="filename" value="examples/manual/fileio/openlpt.bas"}}%%(freebasic)
'This simple program will print a PostScript file to a PostScript compatible printer.
Dim As UByte FFI, PPO
Dim As String temp

FFI = FreeFile()
Open "sample.ps" For Input Access Read As #FFI
PPO = FreeFile()
Open Lpt "LPT1:" For Output As #PPO
While (EOF(FFI) = 0)
Line Input #FFI, temp
Print #PPO, temp
Wend

Close #FFI
Close #PPO

Print "Printing Completed!"
%%

{{fbdoc item="lang"}}
- In the //[[CompilerOptlang|-lang qb]]// dialect the old syntax is supported OPEN "LPT:..." . This syntax used in the other dialects will open a regular file.

{{fbdoc item="see"}}
- ##[[KeyPgOpen|Open]]##
- ##[[KeyPgLprint|Lprint]]##

{{fbdoc item="back" value="CatPgFile|File I/O Functions"}}
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki



sf.net phatcode