Referenz - OPEN LPT
Syntax: OPEN LPT "LPT:Printer_Name,TITLE=Doc_Title,EMU=TTY" [FOR Dateimodus] AS #Dateinummer
Typ: Anweisung
Kategorie: Hardware
OPEN LPT bereitet einen Drucker darauf vor, Daten vom Befehl PRINT # bzw. PUT # auszugeben. Anders als bei LPRINT kann jeder Drucker angesprochen werden, der im System registriert ist. Auch USB-Drucker können verwendet werden.
- 'x' gibt eine Port-Nummer an. Wird die Zahl ausgelassen, dann werden die Daten an den Drucker-Spooler gesendet.
- 'Printer_Name' ist der Name des Druckers, wie er im System eingetragen ist. Wird dieser Parameter ausgelassen, benutzt FreeBASIC automatisch den Standarddrucker.
- 'Doc_Title' ist der Titel, der im Viewer des Drucker-Spoolers angezeigt wird. Wird dieser Parameter ausgelassen, verwendet FreeBASIC einen Standardtitel, der den Namen der Anwendung enthält, die den Druckauftrag ausgesandt hat.
- Das Argument 'EMU=TTY" ermöglicht die Benutzung der Sonderzeichnen CR (CHR(13), Carriage Return), LF (CHR(10), Line Feed), BS (CHR(8), Backspace), TAB (CHR(9), Tabulator), etc. Dies funktioniert sogar dann, wenn der Drucker ein GDI-Drucker ist und diese Sonderzeichen selbst nicht interpretieren kann. Wenn 'EMU=TTY' ausgelassen wird, müssen die Daten in der Druckersprache gesendet werden (ESC/P, HPGL, PostScript, ...). Andere Emulationen werden noch nicht unterstützt. "EMU=TTY" steht nur unter Windows zur Verfügung.
- 'FOR Dateimodus' wurde nur aus Kompatibilitätsgründen beibehalten und wird ignoriert. [
- 'Dateinummer' ist eine Ganzzahl von 1 bis 255, über die später auf den Port zugegriffen wird. Sie darf nicht doppelt vergeben werden und verhält sich wie eine Dateinummer der OPEN-Anweisung.
OPEN LPT kann auch als Funktion eingesetzt werden. In diesem Fall müssen die übergebenen Parameter von Klammern umschlossen werden. Der Rückgabewert ist ggf. eine Fehlernummer. Wird 0 zurückgeliefert, konnte der Drucker geöffnet werden.
Beispiel 1:
"Hello World" drucken
Dim As Integer Drucker = FREEFILE
OPEN LPT "LPT:EMU=TTY" FOR OUTPUT AS #Drucker
PRINT #Drucker,"Hello World!"
PRINT #Drucker, CHR(12) 'Neue Seite: die meisten Druckertreiber machen nichts
'bis eine neue Seite empfangen wird
CLOSE #Drucker
Beispiel 2:
Den Inhalt der Datei test.txt auf dem Windows-Drucker "ReceiptPrinter" drucken
DIM RptInput AS STRING
Dim as Integer RptFilehandle = FREEFILE
OPEN "test.txt" FOR INPUT AS #RptFilehandle
Dim as Integer Printhandle = FREEFILE
OPEN LPT "LPT:ReceiptPrinter,TITLE=ReceiptWinTitle,EMU=TTY" AS #Printhandle
WHILE NOT EOF(RptFilehandle)
LINE INPUT #RptFilehandle, RptInput
PRINT #Printhandle, RptInput
WEND
CLOSE #Printhandle ' Ein CHR(12) zum Bestätigen des Druckauftrages ist nicht
' notwendig. Wenn allerdings eine neue Seite begonnen werden
' soll, muss dennoch CHR(12) gesendet werden.
CLOSE #RptFilehandle
PRINT "Beliebige Taste zum Beenden druecken..."
SLEEP
Plattformbedingte Unterschiede:
- Das Argument "EMU=TTY" wird unter Linux und DOS ignoriert.
- "Printer_Name" und "TITLE=Doc_Title" werden unter DOS ignoriert.
- Unter Linux muss ein Drucker-Spooler installiert sein, der über lp verfügbar ist. Der Zugriff auf den Spooler wurde nur mit CUPS getestet, aber es können auch andere Spooler funktionieren, die durch lp aufgerufen werden. Bei der Angabe des Ports entspricht "LPT1:" "/dev/lp0" usw.
Die Daten müssen in einer Druckersprache (ESC/P, HPGL, PostScript etc.) gesendet werden. Emulationsmodi werden unter Linux noch nicht unterstützt. - Unter DOS werden Drucker-Spooler nicht unterstützt. Drucker müssen über "LPTx:" geöffnet werden.
Die Daten müssen in einer Druckersprache (ESC/P, HPGL, PostScript etc.) gesendet werden. Emulationsmodi werden unter DOS noch nicht unterstützt.
Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb wird die alte Syntax OPEN "LPT:..." unterstützt. Wird diese Syntax in einer anderen Dialektform eingesetzt, dann wird eine normale Datei geöffnet.
Siehe auch:
OPEN (Anweisung), LPRINT (Anweisung), Hardware-Zugriffe
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|