Dokument im Drucker ablegen

Anforderung

Viele, meist grössere Drucker, die für den Einsatz als Gruppen- oder Abteilungsdrucker gedacht sind, verfügen zum einen über eine Festplatte, auf der Druckaufträge gespeichert werden können, und zum anderen über ein Bedienfeld, mit dem diese Druckaufträge dann abrufbar sind.

Eine wichtige Nutzung, die damit möglich wird, ist der gesicherte Druck: das Dokument wird vom Besitzer in dem Augenblick gedruckt, in dem dieser vor dem Drucker steht, und der Ausdruck gelangt nicht in falsche Hände. Aus diesem Sicherheitsaspekt heraus wird der Zugriff auf die gespeicherten Druckaufträge meist von der Eingabe eines Benutzernamens und eines Passwortes abhängig gemacht.

Dieser Ablagemechanismus wird von den Druckerherstellern oft mit den Begriffen 'Postfächer' oder 'MailBoxes' beschrieben. Die maximale Zahl verfügbarer Ablagen und deren Ansteuerung variieren leider von Drucker zu Drucker.

Realisierung

Die einzelnen Druckerhersteller handhaben Postfächer sehr unterschiedlich. Es kristallisieren sich aber drei prinzipielle Ablagetypen heraus, die manchmal anders benannt sind, aber doch letztendlich die folgenden Funktionen realisieren:

Ablagetyp Beschreibung
Öffentlich Die Ablage des Druckauftrags erfolgt öffentlich, das heist, jeder Benutzer, der den Drucker bedienen kann, sieht den gespeicherten Druckauftrag und kann ihn drucken oder auch löschen.
Privat Die Ablage des Druckauftrags erfolgt privat, das heist, nur der bei der Ablage des Dokuments ausgewiessene Benutzer kann das Dokument drucken und löschen. Dazu muss er auch das ebenfalls beim Ablegen übermittelte Passwort kennen. Der Benutzer muss sich also zum Abruf des Druckauftrags am Drucker mit Namen und Passwort anmelden.
Prüfung Die Ablage des Druckauftrags erfolgt öffentlich. Im Gegensatz zur ersten Einstellung werden jetzt im Falle des Abrufs nicht alle Exemplare des Dokument gedruckt, sondern nach dem Druck des ersten Exemplars bleibt der Drucker stehen, und erwartet vom Benutzer eine Freigabe. Nach erfolgter positiver Freigabe werden dann die restlichen Exemplare des Dokuments gedruckt. Bei negativer Freigabe wird der Druckauftrag gelöscht.


Damit print2forms auf diese Postfächer zugreifen kann, gibt es zwei spezielle Bearbeitungsschritte im Dokumentprozess. Der eine mit der Bezeichnung Dokument ablegen sorgt dafür, dass durch die Ausgabe von entsprechenden Steuersequenzen der Druckauftrag in das Postfach gelangt, anstatt es auszudrucken. Der zweite Bearbeitungsschritt heist Anhang ablegen und ergänzt den ersten Bearbeitungsschritt für den Fall, dass zum Dokument noch Anhänge benötigt werden.

Die Besonderheit dieser Bearbeitungsschritte liegt darin, dass ein Benutzername, ein Dateiname und, für den Fall der privaten Ablage - ein Passwort für die Ablage auf dem Drucker vorgegeben werden muss.

Im Beispiel-Prozess ist zu sehen, wie zunächst mit drei Bedingungen die notwendige Daten zur richtigen Ablage beschaft werden. Der Name des Benutzers wird in der Bedingung 'Sachbearbeiter' aus den Druckattributen des Druckauftrags (PJL-Sequenzen) entnommen, und unter der Einstellung Benutzer zur Übermittlung an den Drucker ausgewählt. Mit der Bedingung 'Auftrag' wird die Auftragsnumer aus den Druckdaten entnommen, und unter der Einstellung Passwort benutzt. Die Bedingung 'Lieferschein' ermittelt zwei Zahlen aus den Druckdaten, wobei die erste unter der Einstellung Dateiname zur Bildung eines eindeutigen Dateinamens zur Ablage auf dem Drucker benutzt wird. Die zweite Zahl wird unter der Einstellung Auflage zur Bestimmung der Anzahl der zu druckenden Kopien verwendet.

Für die Ansteuerung der Postfächer müssen in der Druckeranpassung die entsprechenden Sequenzen hinterlegt werden. Die verschiedenen Ablagetypen werden in einer Ressourcegruppe mit dem Namen Disk innerhalb der Untergruppen PRIV, PUBL und PROF definiert:

  ( "Disk", AtBeginOfJob,

    ( "USER",  PJL, "SET USERNAME = $22#S$22" ),   /* name of box */  
    ( "FILE",  PJL, "SET JOBNAME = $22#S$22" ),   /* name of file */

    ( "PRIV",  PJL, "SET HOLD = ON",               /* private box */
                    "SET HOLDTYPE = PRIVATE",
                    "SET HOLDKEY = $22#S$22" ),
    ( "PUBL",  PJL, "SET HOLD = ON",                /* public box */
                    "SET HOLDTYPE = PUBLIC",
                    "SET HOLDKEY = $22$22" ),
    ( "PROF",  PJL, "SET HOLD = PROOF",        /* proof print box */
                    "SET HOLDTYPE = PUBLIC",
                    "SET HOLDKEY = $22$22" )
  ),

Die Kennung '#S' innerhalb der PJL-Sequenzen stehen als Platzhalter für die Ausgabe der entsprechenden Daten aus dem Dokumentenprozess: bei USER wird der Wert der Einstellung Benutzer, bei FILE der Wert der Einstellung Dateiname und bei den anderen Sequenzen der Wert der Einstellung Passwort ersetzt.

Bemerkungen