Webseiten-Werkzeuge

Benutzer-Werkzeuge


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:

  • Bestimmte konstante Daten auf der ersten Seite
  • Wechsel von Daten auf der ersten Seite
  • Wechsel des Einzugschachts für erste Seite
  • Seitenzahl

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

  • Die Weitergabe an einen Druckprozess kann konditioniert werden. Dies ist notwendig, wenn im Druckauftrag auch unterschiedliche Dokumenttypen gemischt werden - Rechnungen, Lieferscheine, Auftragsbestätigungen. Dann kann durch eine Bedingungsliste bestimmt werden, in welchem Fall welcher Bearbeitungsschritt ausgeführt werden soll.
  • Die Weitergabe zur Bearbeitung muss nicht unbedingt an den Drucker erfolgen, für den der Dokumentenprozess ausgeführt wird. Über die Einträge bei 'Drucker' oder 'Gateway' kann ein anderes Ausgabeziel ausgewählt werden.
  • Muss für die Formatierung eines Dokuments die letzte oder vorletzte Seite erkannt werden, muss in jedem Fall zunächst ein Dokumentenprozess aufgerufen werden, um das gesamte Dokument zu lesen. Für 'Dokumentgrenze' wird dann einfach eine Bedingung angegeben, die nie erfüllt wird - Seitenzahl ist 99999.
  • Die Weitergabe an einen anderen Dokumentenprozess im Sinne einer weiteren Verfeinerung der Zerlegung eines Druckauftrags ist nicht möglich.
print2forms/tips/tip2.txt · Zuletzt geändert: 2018-09-12 16:17 von volker