Für die inzwischen recht bekannten HP LaserJet und andere PCL-5-Drucker gibt es die Sprache PJL, um den Drucker an die Anforderungen des Benutzers anzupassen. Alle Einstellungen, die per Bedienfeld am Drucker ausgewählt werden, können so komfortabel per Software geändert werden. Einige Drucker bieten allerdings auch Möglichkeiten, die sich nicht über das Bedienfeld einstellen lassen. Hierbei ist man also auf ein Programm angewiesen, daß diese Einstellungen per Software vornimmt.
Hewlett Packard liefert leider nur Programme für DOS und Apple mit. ATARI-Anwender stehen dabei, wie so oft im Regen. Nachfolgende CPX-Module sollen hier abhelfen. Mit PJL kann man auch weitere untergeordnete Sprachen wie PCL oder Postscript aus wählen, Druckerjobs steuern usw. Folgende HP Drucker erkennen PJL-Kommandos:
Allerdings sind meist nicht alle PJL-Kommandos in jedem Drucker implementiert, da es unnötig wäre, z.B. die serielle Schnittstelle eines Druckers zu konfigurieren, wenn dieser keine serielle Schnittstelle hat. Falls ein PJL-Befehl an einen Drucker geschickt wird, der den Befehl nicht unterstützt, wird er ignoriert. In diesem Artikel wird auch nicht auf alle PJL-Befehle [ 1 ] eingegangen, sondern lediglich auf die für den LaserJet 4L wichtigen.
Einige PJL-Befehle für den LaserJet 4L können Sie in Tabelle 1 sehen.
Die mit einem ,*’ gekennzeichneten Befehle sind PCL-spezifische Variablen, die jedoch von PJL aus direkt geändert werden können. Hierfür muß man den LPARM-Parameter angeben. Der jeweils erste Parameter in der Übersicht ist der Default-Wert. Es gibt zwar noch einige Befehle, die einen Datenfluß vom Drucker zum Rechner erlauben, um verschiedene Statusmeldungen des Druckers zu erhalten, dies ist aber leider beim ATARI ST mangels einiger Steuerleitungen der parallelen Schnittstelle nicht möglich. Jedenfalls ist mir keine Möglichkeit bekannt, diesen Mangel zu umgehen.
Nun, das war bis jetzt alles ganz nett, aber wie mache ich dem Drucker klar, daß ich z.B. den Zeichensatz „PC8“ haben will, um deutsche Umlaute auf dem Papier zu erblicken? Hierfür gleich ein Beispiel:
<Esc>%-12345X@ PJL <CRxLF>
@PJL DEFAULT LPARM : PCL SYMSET = PC8 <CRxLF>
<Esc>%-12345X <CRxLF>
In der 1. Zeile haben wir den Drucker auf PJL umgeschaltet, in der 2. Zeile wird der Standardzeichensatz gesetzt, und in der letzten Zeile PJL beendet. Etwaige weitere Befehle sind zwischen der 2. und 3. Zeile einzufügen.
Der PJL-Befehl besteht im Beispiel aus:
Präfix @PJL
Kommando DEFAULT
Parameter LPARM : PCL
Befehlsname mit Wert SYMSET = PC8
Ende <LF>
<CR> am Ende der Zeile und Leerzeichen vor und nach dem ,=‘ sind optional, zwischen <CR> und <LF> darf jedoch kein Leerzeichen stehen.
<Esc> Zeichen für Escape also ASCII 27
<CR> ASCII 10 (kann bei jedem Befehl weggelassen werden)
<LF> ASCII 13
Für die Wahl der Papierausrichtung sieht das dann so aus:
@PJL DEFAULT ORIENTATION = LANDSCAPE <LF>
Mit dem Kommando DEFAULT wird die jeweilige Konfiguration im RAM bzw. NVRAM des Druckers dauerhaft gespeichert, allerdings erst nach Beenden der PJL-Kommandos. Falls ein dauerhaftes Speichern nicht gewünscht ist, um z.B. lediglich für einen Drucker-Job die Konfiguration zu ändern und danach wieder automatisch die Standardeinstellungen zu haben, gibt es das Kommando SET:
@PJL SET ORIENTATION = LANDSCAPE <LF>
Kommando | Beschreibung |
---|---|
DEFAULT | setzt Standardkonfiguration |
SET | aktuelle Konfiguration |
INITIALIZE | setzt Drucker auf Fabrikkonfiguration zurück |
ENTER | wählt Sprache (PCL, POSTSCRIPT) |
Tabelle 2: Übersicht Kommandos
Wie anfangs bereits geschrieben, kann man von PJL aus auf andere Druckersprachen umschalten:
@PJL ENTER LANGUAGE = PCL <LF>
Von hier aus könnte man z.B. weiter nach HP-GL/2 schalten und munter HP-GL/2-Kommandos schicken oder andere PCL-Befehle, um z.B. den oberen Rand der Seite einzustellen usw. Diese untergeordneten Kommandos sind jedoch nur bis zum Beenden der PJL-Befehle gültig. Danach läuft der Drucker wieder unter den Default-Werten.
Der schematische Aufbau der Printer Job Language
Falls Sie übrigens während Ihrer Versuche mit dem LaserJet 4L und PJL Panik bekommen und den Drucker am liebsten wieder auf die original Fabrikkonfiguration zurücksetzen wollen, drük-ken Sie einfach für ca. 5 Sekunden die Bedienfeldtaste, bis alle Anzeigen zu blinken beginnen [2],
Zum Abschluß gibt es noch ein kleines C-Listing, das beliebig ausgeweitet werden kann. Wem das zu mühsam ist, kann einfach zur Megadisk greifen, dort befinden sich 3 CPX-Module jeweils für den LaserJet 4,4L und 4P. Beim Listing bleibt noch anzumerken, daß „\033“ in C für das Escape-Zeichen steht und „%%“ nötig ist, um ein %-Zeichen zu drucken.
Literatur:
[1] Printer Job Language, Technical Reference Manual Hewlett Packard, Second Edition, 5/93
[2] Benutzerhandbuch LaserJet 4L
/* Beispielprogramm zur Demonstration
der PJL
(c)1994 by MAXON-Computer
Autor: Donald Bork */
#include <stdio.h>
#define druck(a) fprintf(stdprn, a)
void main(void)
{
druck("\033%%-12345X@PJL \n"); /* PJL einleiten */
druck("@PJL DEFAULT DENSITY = 3\n");
druck("@PJL DEFAULT MANUALFEED = OFF\n");
druck("@PJL DEFAULT LPARM : PCL SYMSET = PC8\n");
druck("@PJL DEFAULT LPARM : PCL FONTNUMBER = 15\n");
druck("OPJL DEFAULT LPARM : PCL PTSIZE = 12.00\n" );
druck("\033%%-12345X" );
/* und aus PJL verabschieden */
}
Befehl | Parameter | Bedeutung |
---|---|---|
AUTOCONT | OFF / ON | Autoweiter bei Fehler |
COPIES | 1 bis 999 | Zahl der Kopien |
DENSITY | 3 1 bis 5 |
Toner bzw. Kontrast |
ECONOMODE | OFF ON | Sparmodus für den Tonei |
FONTNUMBER * | 0 bis 25 | Auswahl der Schrift |
FONTSOURCE * | I / S | Intern oder Softfont |
FORMLINES | 64 (bei DIN A4) 5 bis 128 |
Zeilen pro Seite |
IMAGEADAPT | AUTO, ON/OFF | Bild Kompression |
MANUALFEED | OFF / ON | manueller Papiereinzug |
ORIENTATION | PORTRAIT / LANDSCAPE | Papierausnchtung (hoch/querl |
PAGEPROTECI | AUTO, ON / OFF | Ganzseitendruck |
PAPER | A4, LETTER, LEGAL, EXECUTIVE, COM10, MONARCH, C5, DL, B5 | Papierformat |
PITCH * | 10.00 0.44 bis 99.99 |
Zeichendichte für nicht proportionale Schrift |
PTSIZE * | 12.00 4.00 bis 999.75 in Schritten von 0.25 |
Zeichengröße für proportionale Schrift |
RET | MEDIUM, OFF, LIGHT, DARK | verbessert die Auflösung |
SYMSET * | ROMAN8, DESKTOP, WINL1, ISOL1, PC8, PC850, PSTEXT, VNINTL, PC8DN, VNUS, LEGAL, WIN30, MSPUBL, PC852, PC8TK, ISOL2, WINL2, ISOL5, WINL5, VNMATH, MATH8, PIFONT, PSMATH |
Zeichensatz (Codeseite) |