Drucken eines Textes als Bild

Anforderung

In einem Dokument sollen zu in einer Tabelle aufgelisteten Artikelummern entsprechende Bilder der Artikel plaziert werden.

Grundlage für dieses Beispiel ist das Formular 'Angebot einzelne Seite mit Bildern' aus der Beispielinstallation. In der Tabelle wurde unterhalb der Preise bereits genügend Platz für die Artikelbilder reserviert. Der Ausdruck der Tabelle mit den Artikelnummern vor der Änderung sieht wie folgt aus (Ausschnitt):

Realisierung

Zur Realisation dieser Anforderung wird im hier verwendeten Formular ein Ressourcenfeld verwendet (existentes Feld 'Artikel'. Die Aufgabe des Ressourcenfeldes ist, die Artikelnummern zu suchen, Bilder für diese Artikel zu finden und diese unterhalb der Preise zu positionieren. Das nachfolgende Ressourcenfeld erledigt diese Arbeit:

Grundvoraussetzung für das Drucken der Artikelbilder ist, daß sich die Bilder im Zugriff des print2forms-Systems befinden. Im hier vorliegenden Beispiel sind die Artikelbilder als Ressourcen in einem speziellen Subcontainer mit dem Namen 'Bilder' hinterlegt. Wie diese Ressourcen in das print2forms-System importiert werden, ist in einen getrennten Kapitel beschrieben.

Um die Artikelnummern im Ausdruck zu finden, wird als Feldindex '00????0000' und als Vergleichsmuster ' [# ]# ([@#]{1,8}[^ ]) .*' angesetzt. Mit diesen beiden Angaben wird jede Textpassage, die an der horizontalen Position '0000' beginnt, gegen das Muster verglichen. Das Muster prüft zunächst auf fünf Leerzeichen gefolgt von einer Folge aus einer Leerstelle oder einer Ziffer, einer Ziffer und drei weiteren Leerzeichen. Damit wird eine ein oder zweistellige Positionsnummer in der Tabelle gefunden - die erste Ziffer der Positionsnummer muß als '[# ]' definiert werden, weil die einstelligen Positionsnummern mit einer Leerstelle beginnen. Alsdann wird die maximal acht Zeichen lange Artikelnummer, die mit einem Buchstaben beginnen muß und mit der ersten Leerstelle endet, in den ersten Textpuffer übernommen. Die Auswahl 'Nein' bei 'Feld entfernen' läßt die Textpassage so wie sie ist auf dem Blatt.

Zum besseren Verständnis der Arbeitsweise des kompliziert aussehenden Vergleichsmusters ist hier die Indexdatei des Beispieldatenstroms abgebildet:

 [p2f]
 [Param]1.0;10.1.17.7;07.11.07 15:34:36
 [Computer]thinkcentre.spe-gmbh.de
 [User]Volker
 [Model]P2F LaserJet 5
 [Job]Sample 10
 [JobNo]
 [File]10
 [FileNo]
 [Hold]
 [Save]
 [UserData]
 [DefData]
 [Process]6PE-ZXW.XML
 [0101D10000]     
 [0102850000]40 48535 075 019 345627 04
 [0102C10000]                                                           00018/4
 [0103390000]                                                           1704
 [0103750000]       Kunde AG
 [0103B10000]       z. Hd. Hr. X. Kunde                                 346-57897
 [0104290000]       Kundengasse 19                                      Hr. G. Muster
 [0104650000]       D-48535 Kundendorf
 [0104A10000]                                                           01.01.2005
 [0105190000]                                                           31.01.2005
 [0105CD0000]
 [0106090000]
 [0106450000]      1   SK20F1   Scart Kabel, high quality       9.99€    8.88€    7.77€ 
 [0106810000]                   1 x Scartstecker auf 1 x Scartstecker (21 pin),
 [0106AE0000]                   transparentes Kabel mit vergoldeten Kontakten,
 [0106DB0000]                   4 x 0.14 mm² abgeschirmt (Audio), 6 x 75 Ohm 
 [0107080000]                   RG59 (Video), Länge 2 m, VPE 10 Kabel
 [0108070000]      2   SK20HQT  Scart-Flachkabel                9.99€    8.88€    7.77€
 [0108430000]                   Stecker auf Stecker, 21 polig belegt, 1 m
 [0108700000]                   VPE 25 Kabel
 [0109C90000]      3   SV3      Scart Verteiler                99.99€   88.88€   77.77€
 [010A050000]                   Vollständig beschaltet für den Anschluß von 3
 [010A320000]                   Geräten, alle Buchsen parallel geschaltet
 [010A5F0000]                   VPE 1 Verteiler
 [010B8B0000]      4   AVS1020  Video-Kabel Scart auf Cinch     9.99€    8.88€    7.77€
 [010BC70000]                   1 x Scartstecker auf 3 x Cinchstecker, 2 x 
 [010BF40000]                   0.14 mm² abgeschirmt (Audio), 1 x 75 Ohm 
 [010C210000]                   RG 59 (Video), Länge 1 m, VPE 100 Kabel
 [Page]

Die Positionierung der Artikelbilder benötigt einige Überlegungen. Zunächst muß berücksichtigt werden, daß die Artikelbilder nicht exakt mit ihrer oberen linken Ecke positioniert sind. Mit einem Testausdruck kann der horizontale und vertikale Versatz ausgemessen werden. Dieser Versatz ist nicht in der Ressource des Artikelbildes kompensiert worden! (Was aber durchaus möglich wäre.)

Als nächstes wird der Abstand vom linken Rand der Nutzdaten (erster Buchstabe in der Zeile) zur gewünschten Position des Artikelbildes ausgemessen. So ergibt sich dann ein horizontaler Versatz von '10,90 cm' und ein vertikaler Versatz von '-1,80 cm' bei einer Positionierung 'Relativ zum Feld', was dafür sorgt, daß die Bilder relativ zur Grundlinie der gefunden Textpassage über das Blatt wandern. Wegen des oberen Randes beim Artikelbild ist der negative vertikale Versatz notwendig, um das Bild in die Nähe der Grundlinie zu ziehen.

Jetzt muß nur noch die passende Ressource ausgewählt werden. Wie oben schon erwähnt, stehen die Bilder in einem Subcontainer mit dem Namen 'Bilder', was dann als Wert für die Einstellung 'Zugriffspfad' anzugeben ist. Der Name der Ressource ist identisch mit der Artikelbezeichnung, sodaß als Schablone für den Ressourcennamen einfach '\Artikel:1' verwendet wird. Die Referenz über einen Namen ist hier möglich, weil wir dem Ressourcenfeld ja den Namen 'Artikel' gegeben haben.

Das Ergebnis, das dieses Ressourcenfeld erzeugt ist nachfolgend zu sehen (Ausschnitt):

Da das Vergleichsmuster insgesamt vier mal innerhalb des Druckauftrags gefunden wurde, werden vier Artikelbilder mit diesem einen Ressourcenfeld gedruckt. Im ersten Textpuffer standen die vier Texte 'SK20F1', 'SK20HQT', 'SV3' und 'AVS1020'. Die Wildcard-Zeichen '????' für die vertikale Position im Feldindex sorgten dafür, daß die gesamte Seite abgesucht wurde.

Bemerkungen