Einzeldokumente erkennen

Anforderung

Insbesondere Druckaufträge von Grossrechnern sind oft so aufgebaut, dass in einem einzigen Auftrag eine Folge von Einzeldokumenten, z.B. Rechnungen oder Lieferscheinen, gedruckt wird. Will man etwas auf das Einzeldokument bezogenes machen, wie etwa AGBs einfügen oder dokumentweise Kopien erzeugen, stellt sich sofort das Problem, aus dem grossen Druckauftrag die Einzeldokumente zu extrahieren.

Einzeldokumente bearbeiten

Realisierung

print2forms hat für die Erkennung von Einzeldokumenten eine besondere Art von Prozess: den Dokumentenprozess. Die Aufgabe dieses Prozesses ist, anhand bestimmter Kriterien den Anfang eines Einzeldokuments im Druckdatenstrom zu finden.

Mögliche Kriterien, die dabei geprüft werden können sind:

Das erste Kriterium kommt in Frage, wenn zum Beispiel nur auf der ersten Seite ein Adressfeld vorhanden ist, oder wenn die erste Seite generell anders formatiert ist, als die Folgeseiten. Das kann zum Beispiel auch ein Seitenzähler sein. Immer wenn der Seitenzähler auf '1' steht, beginnt ein neues Dokument. Das zweite Kriterium kann zum Einsatz kommen, wenn zum Beispiel auf jeder Seite eines Einzeldokuments eine Belegnummer (Rechnungsnummer, Kundennummer, etc) eingedruckt ist. Wechselt diese Nummer, beginnt ein neues Einzeldokument. Das dritte Kriterium kann in den Fällen zum Einsatz kommen, in denen bereits der druckende Rechner entschieden hat, dass das erste Blatt eines Einzeldokuments aus einem bestimmten Papierschacht gezogen werden muss. Das vierte Kriterium wird eingesetzt, wenn jedes Einzeldokument die gleiche Anzahl von Seiten hat.

Der Dokumentprozess geht im Prinzip so vor, dass er den empfangenen Druckauftrag solange in einen internen Zwischenspeicher schreibt, bis eine Dokumentgrenze gefunden oder der Druckauftrag beendet wurde. Im letzteren Fall besteht der gesamte Druckauftrag eben nur aus einem Dokument.

Ist ein Einzeldokument erkannt, wird es aus dem Zwischenspeicher heraus an einen Druckprozess zur Formatierung und Ausgabe weitergegeben. Dabei ist es auch möglich, das Einzeldokument mehrfach weiterzugeben, weil man zum Beispiel ein Original und dann eine oder mehrere Kopien drucken möchte.

Ein erstes Beispiel stammt aus der Demoinstallation von print2forms. Dort gibt es einen Dokumentenprozess mit dem Namen 'ExLiefer Lieferscheine ermitteln'. In dem zugrunde liegenden Druckdatenstrom für Lieferscheine ist es so, dass an einer bestimmten Stelle auf jeder (!) Seite eines Lieferscheins die Lieferscheinnummer steht. Wechselt die Lieferscheinnummer beginnt also ein neuer Lieferschein.

Dokumentenprozess 'ExLiefer'

Folglich wird im Dokumentenprozess als Kriterium für die Dokumentgrenze 'Feldwechsel' angegeben. Der Feldindex '0002C10000' referenziert die Position der Lieferscheinnummer auf den einzelnen Seiten eines Lieferscheindokuments. Der Index wurde bei einem Probedruck des Lieferscheins aus der Indexdatei ermittelt. Der Vergleichswert extrahiert die beiden als Lieferscheinnumer gewerteten Zahlen (hier im Beispiel '00001' und '3').

[p2f]134676739
[Client]3.1.0.5713;A$O4ER.XML
[Param]3.0;10.1.17.27
[Time]22.04.13 11:29:17
[Computer]THINKCENTRE3
[User]Volker
[Model]p2f Printer
[Job]Sample 1
[File]1
[Process]ANLAGEN.XML
[0102C10000]                                                         00001/3
[0103390000]                                                         1704
[0103750000]       Kunde AG
[0103B10000]       Z.Hd. Hr. X. Kunde                                347-57897
[0104290000]       Kundengasse 19                                    15595
[0104650000]       D-48535 Kundendorf
[0104A10000]                                                         Hr. G. Muster
[0105190000]                                                         22.04.2013
[0106810000]      1   L1BL50   Schaltlitze 0,14x50 m blau     St     330      0    330
[0106F90000]      2   L1SW500  Schaltlitze 0,14x500 m schw.   St      50      0     50
[0107710000]      3   2L1002P  Kabelset PS/2 2,0 m            St     210     21    189
[Page]
[End]

In der Bearbeitungsliste wird aufgeführt, was mit dem erkannten Einzeldokument geschehen soll. Hier im Beispiel wird lediglich die Weitergabe an einen Druckprozess mit dem Namen 'Lieferschein drucken' ausgelöst. In diesem Druckprozess sind dann auch Abfragen, wie 'ist das die letzte Seite des Dokuments' möglich, weil das Einzeldokument ja bereits in Gänze gelesen wurde und damit auch seine Seitenanzahl bekannt ist.

Will man ein Einzeldokument ein weiteres mal bearbeiten, wird einfach in der Bearbeitungsliste ein weiterer Eintrag erzeugt. Im Dokumentprozess 'ExLieferK Lieferscheine ermitteln (Kopie)' ist das realisiert.

Dokumentprozess 'ExLieferK Lieferscheine ermitteln (Kopie)'

Hier wird das zwischengespeicherte Einzeldokument noch einmal an einen Druckprozess 'Lieferschein Kopie drucken' übergeben, der eine Kopie - eventuell mit einem entsprechenden Eindruck und reduziertem Tonerauftrag - erstellt.

Bemerkungen