|
Printer Job Language (PJL) Kommandos zur Steuerung von (HP) Druckern
Diese Kurzreferenz ist Teil von Carstens Homepage.
Allgemeine Einführung zur PJL Kommandoübermittlung
Die Bedeutung einiger Spezialzeichen ist in dieser kleinen Tabelle
erläutert:
| [..] |
optionale Angaben, die OHNE die eckigen Klammern übergeben werden |
| <..> |
Steuerzeichen, wie zum Beispiel Carriage Return (CR), Linefeed (LF)
oder ESC (ESC) |
Auf der Homepage von HP
gibt es mittlerweile eine Möglichkeit die gesamte PJL Kommandoreferenz
herunterzuladen. Dies sollte man tun, falls man beabsichtigt
Programme zu entwickeln.
PJL
Kommandoreferenz von HP herunterladen.
Diese Aufstellung von Kommandos der sog. Printer Job Language
(PJL) ist natürlich nicht vollständig, aber umfaßt die wichtigsten bzw.
interessantesten Kommandos. Immerhin kann man mit Hilfe dieser Beschreibung die
Defaulteinstellungen des Druckers verändern, zum Beispiel Postscript Fehlerseiten ausschalten, die Papiergröße
einstellen oder gar den Papierschacht wählen.. Weitere Möglichkeiten sind
ein echtes Accounting nach gedruckten Seiten, Abfrage von Eigenschaften des
Druckers und genauer Fehlerstati.
Das folgende Beispiel soll zeigen wie man die unten aufgeführten PJL
Kommandos an den Drucker schickt. Jedes PJL Kommando muß mit einer UEL
(Universal Exit Language) Sequenz gestartet und beendet werden. Außer im
folgenden Beispiel ist diese Sequenz in den folgenden Beispielen nicht mehr
erwähnt muß aber dennoch immer mitgesendet werden. Konvention im
folgenden Text: Ausgaben des Druckers werden grün
dargestellt. Eingaben des Benutzers erscheinen in Rot.
Zusätzlich sind diese Texte in einem Font mit festem Zeichenabstand
dargestellt.
echo -e "\33%-12345X@PJL\n@PJL USTATUS DEVICE=ON\n\33%-12345X" | cat >/dev/lp0
# Schalte unaufgeforderte Statusmeldungen des Druckers ein
# Nun öffnen wir zum Beispiel das Gehäuse...
cat /dev/lp0
@PJL USTATUS DEVICE
CODE=40021
DISPLAY="00 OFFLINE"
ONLINE=FALSE
# Nun schliessen wir die Klappe wieder!
cat /dev/lp0
@PJL USTATUS DEVICE
CODE=10001
DISPLAY="00 ONLINE"
ONLINE=TRUE
Wie man sieht ist in "Code" der Fehler codiert. Eine Tabelle Code ->
Fehlerstring ist in Vorbereitung...
Im folgenden kommt eine Auflistung der wichtigsten PJL Kommandos mit Beispielen.
Printer Job Language
Universal Exit Language (UEL)
Beendet das Arbeiten mit der derzeitigen Druckersprache und gibt die
Kontrolle zurück an PJL. Jeder Druckjob sollte mit diesem Befehl
beginnen und enden.
<ESC>%-12345X
Enter Language
Veranlaßt PJL in die angegebene Druckersprache (Personality) zu wechseln. Danach
werden bis zum verlassen der Druckersprache über ein UEL mit nachfolgender Neuauswahl
einer Druckersprache die anderen normalerweise vom Drucker unterstützen
Druckersprachen nicht mehr verstanden!
@PJL ENTER LANGUAGE = Personality [<CR>]<LF>
z. B.:
@PJL ENTER LANGUAGE = PCL [<CR>]<LF>
@PJL ENTER LANGUAGE = POSTSCRIPT [<CR>]<LF>
Job Separation
Job (Start)
Gibt den Beginn eines Druckjobs an. Dies setzt den Druckjob-Seitenzähler
zurück. Die Angabe eines Namens für den Druckjob, sowie die Angabe der
ersten und letzten zu druckenden Seite ist möglich. Dieser Befehl wird
auch dazu benutzt, ein Passwort (Zahl von 0 bis 65535) für
PJL-Sicherheit anzugeben.
@PJL JOB [NAME ="Jobname"] [START = erste Seite] [END = letzte Seite]
[PASSWORD = Zahl] [<CR>]<LF>
End-Of-Job
Markiert das Ende des Druckjobs. Der Druckjob-Seitenzähler wird
zurückgesetzt.
@PJL EOJ [NAME = "Jobname"] [<CR>]<LF>
Das ist eine der zentralen PJL Funktionen um Grundeinstellungen des Druckers
auch über Ein-/Ausschalten hinaus zu verändern.
Initialize
Setzt die derzeitigen und default PJL-Variablen in die Grundeinstellung
zurück.
@PJL INITALIZE [<CR>]<LF>
Reset
Setzt die derzeitigen PJL-Variablen auf Default-Werte.
@PJL RESET [<CR>]<LF>
Default
Setzt den Default-Wert für eine Umgebungsvariable. Der Wert wird dauerhaft
bis zum Erneuten Ändern gesichert.
@PJL DEFAULT [LPARM: Personality | IPARM: Port] Variable = Wert
[<CR>]<LF>
Set
Setzt eine Umgebungsvariable für die Dauer eines PJL Druckjobs
@PJL SET [LPARM: Personality | IPARM: Port] Variable = Wert [<CR>]<LF>
Da dies eigentlich eines der wichtigsten Kommandos ist folgenden am Ende der Seite
ein paar Beispiele zur Verwendung des Kommandos.
PJL Status Readback
Inquire
Fordert den derzeitigen Wert einer Umgebungsvariable vom Drucker an.
@PJL INQUIRE [LPARM: Personality | IPARM: Port] Variable [<CR>]<LF>
Antwort des Druckers
@PJL INQUIRE [LPARM: Personality | IPARM: Port] Variable <CR><LF>
Wert <CR><LF>
<FF>
Dinquire
Fordert den Default-Wert einer Umgebungsvariable vom Drucker an.
@PJL DINQUIRE [LPARM: Personality | IPARM: Port] Variable [<CR>]<LF>
Antwort des Druckers
@PJL DINQUIRE [LPAIRM: Personality | IPARM: Port] Variable <CR><LF>
Wert <CR><LF>
<FF>
Info
Fordert eine bestimmte Kategorie von Druckerinformationen an.
@PJL INFO Kategorie [<CR>]<LF>
z. B.:
@PJL INFO ID [<CR>]<LF>
@PJL INFO CONFIG [<CR>]<LF>
@PJL INFO MEMORY [<CR>]<LF>
@PJL INFO PAGECOUNT [<CR>]<LF>
@PJL INFO STATUS [<CR>]<LF>
@PJL INFO VARIABLES [<CR>]<LF>
@PJL INFO USTATUS [<CR>]<LF>
Antwort des Druckers
@PJL INFO Kategorie <CR><LF>
[eine oder mehrere Zeilen Informationen]
<CR><LF>
<FF>
Echo
Gibt den Text an den Hostrechner zurück.
@PJL ECHO [<Text>] [<CR>]<LF>
Antwort des Druckers
@PJL ECHO [<Text>] <CR><LF>
<FF>
Ustatus
Erlaubt dem Drucker unaufgefordert Statusmeldungen zu senden.
@PJL USTATUS Variable = Wert [<CR>]<LF>
Antwort des Druckers
@PJL USTATUS Variable <CR><LF>
[eine oder mehrere Zeilen Informationen]
<CR><LF>
<FF>
Ustatusoff
Schaltet die unaufgeforderten Statusmeldungen ab.
@PJL USTATUSOFF [<CR>]<LF>
Device Attendance
Operator Message
Zeigt die angegebene Mitteilung auf dem Drucker-Display (so vorhanden) an
und macht den Drucker off-line.
@PJL OPMSG DISPLAY = "Mitteilung" [<CR>]<LF>
Ready Message
Gibt eine Mitteilung an, die das 00 BEREIT auf dem Drucker-Display
ersetzt. Beeinflußt nicht den on-line Zustand.
@PJL RDYMSG DISPLAY = "Mitteilung" [<CR>]<LF>
Status Message
Zeigt die angegebene Mitteilung auf dem Drucker-Display an und macht den
Drucker off-line. Sendet die gedrückte Taste, die den Drucker wieder
on-line gemacht hat, an den Hostrechner zurück.
@PJL STMSG DISPLAY = "Mitteilung" [<CR>]<LF>
Antwort des Druckers
@PJL STMSG DISPLAY = "Mitteilung"<CR><LF>
Taste <CR><LF>
<FF>
Comment
Gestattet die Verwendung einer Kommentarzeile in PJL.
@PJL COMMENT Kommentar... [<CR>]<LF>
Ein Beispiel für die Benutzung der PJL Kommandos.
Anzeige der momentanen Einstellungen (Druckervariablen)
Um sich eine sehr umfangreiche Liste von Einstellungen wie Druckersprache,
Personality (Druckersprache: z.B. Auto, PCL, PS), Postscript Fehlerseiten und
vielen weiteren Einstellungen des Druckers vom Drucker abzuholen kann man den Drucker wie
folgt nach diesen Werten befragen. Diese Werte kann man auch fast immer
dauerhaft über das Ausschalten hinaus verändern.
Will man einen Wert verändern so sucht man sich ihn aus der mit
cat /dev/lp0 ausgegebenen Liste heraus.
So eine Ausgabe sieht beispielsweise so aus (Farbige Anzeige erforderlich):
Druckerausgaben und Benutzereingaben am Prompt.
echo -e "\33%-12345X@PJL\n@PJL INFO VARIABLES\n\33%-12345X" | cat >/dev/lp0
cat /dev/lp0
@PJL INFO VARIABLES
LANG=GERMAN [13 ENUMERATED]
ENGLISH
FRENCH
GERMAN
ITALIAN
SPANISH
SWEDISH
DANISH
NORWEGIAN
DUTCH
FINNISH
PORTUGUESE
TURKISH
POLISH
COPIES=1 [2 RANGE]
1
999
PAPER=A4 [14 ENUMERATED]
LETTER
LEGAL
A4
EXECUTIVE
COM10
MONARCH
C5
DL
JISB5
B5
A5
CUSTOM
JPOST
JPOSTD
ORIENTATION=PORTRAIT [2 ENUMERATED]
PORTRAIT
LANDSCAPE
FORMLINES=60 [2 RANGE]
5
128
MANUALFEED=OFF [2 ENUMERATED]
OFF
ON
RET=MEDIUM [4 ENUMERATED]
OFF
LIGHT
MEDIUM
DARK
PAGEPROTECT=AUTO [2 ENUMERATED]
AUTO
ON
RESOLUTION=600 [2 ENUMERATED]
300
600
PERSONALITY=AUTO [3 ENUMERATED]
AUTO
PCL
POSTSCRIPT
TIMEOUT=15 [2 RANGE]
5
300
MPTRAY=FIRST [2 ENUMERATED]
CASSETTE
FIRST
AUTOCONT=ON [2 ENUMERATED]
OFF
ON
DENSITY=3 [2 RANGE]
1
5
PASSWORD=DISABLED [2 RANGE]
0
65535
ECONOMODE=OFF [2 ENUMERATED]
OFF
ON
IOBUFFER=AUTO [3 ENUMERATED]
AUTO
ON
OFF
IOSIZE=0 [2 RANGE]
0
0
COURIER=REGULAR [2 ENUMERATED]
REGULAR
DARK
WIDEA4=NO [2 ENUMERATED]
NO
YES
REPRINT=AUTO [3 ENUMERATED]
OFF
ON
AUTO
TESTPAGE="?" [7 ENUMERATED]
SELFTEST
CONTSELFTEST
PCLTYPELIST
PCLDEMOPAGE
PSCONFIGPAGE
PSTYPEFACELIST
PSDEMOPAGE
LPARM:PCL FONTSOURCE=I [1 ENUMERATED]
I
LPARM:PCL FONTNUMBER=0 [2 RANGE]
0
53
LPARM:PCL PITCH=10.00 [2 RANGE]
0.44
99.99
LPARM:PCL PTSIZE=12.00 [2 RANGE]
4.00
999.75
LPARM:PCL SYMSET=PC8 [29 ENUMERATED]
PC8
ROMAN8
ISOL1
ISOL2
ISOL5
ISOL6
PC775
PC8DN
PC850
PC852
PC8TK
PC1004
WINL1
WINL2
WINL5
WINBALT
DESKTOP
PSTEXT
LEGAL
ISO4
ISO6
ISO11
ISO15
ISO17
ISO21
ISO60
ISO69
WIN30
MCTEXT
LPARM:POSTSCRIPT PRTPSERRS=OFF [2 ENUMERATED]
OFF
ON
LPARM:POSTSCRIPT JAMRECOVERY=OFF [2 ENUMERATED]
OFF
ON
Ergebnis ist die sehr umfangreiche Liste von Einstellungen. Um
Beispielsweise die Ausgabe von Postscript Druckerfehlern (Der momentane Status
OFF ist oben hervorgehoben) dauerhaft zu aktivieren ist jetzt
folgendes Kommando am Prompt erforderlich:
echo -e "\33%-12345X@PJL\n@PJL DEFAULT LPARM:POSTSCRIPT PRTPSERRS=ON\n\33%-12345X" | cat >/dev/lp0
Nach dieser Veränderung werden Fehlermeldungen des im Drucker eingebauten
Postscript Interpreters auf einer extra Fehlerseite ausgedruckt. Mit der
Stellung PRTPSERRS=OFF werden sie verworfen.
Die erfolgreiche Aktivierung kann mit dem gleichen Info Kommando wie oben überprüft werden.
|