5. Definition der Positionen im PDF
In der Übersicht der angelegten Formulare gibt es einen zusätzlichen Icon (ein PDF-Symbol). In der nachfolgenden Tabelle werden die Positionen der Einträge im Vorlagen-PDF festgelegt. Es können beliebig viele Positionen angelegt werden.
![]() |
Es gibt die Möglichkeit direkt im Backend ein ausgefülltes Test-PDF zu erzeugen. Damit können Sie schnell überprüfen, ob alle Positionen die richtigen Stellen im Formular ausfüllen. Alle veröffentlichten Positionen werden ausgegeben, bei Formularfeldern steht dort der Feldname.
Da keine Eingangsdaten verfügbar sind, werden die Bedingungen nicht abgeprüft, es
werden alle Felder und alle Seiten in das Test-PDF übernommen.
![]() |
Es gibt verschiedene Typen der Positionen:
- Textposition
• Textposition- Ausgabe von Formularinhalten, Texten und InsertTags - Bildposition
• Bildposition- Ausgabe von Bilddaten - Barcode
• Barcode- Ausgabe eines Barcodes aus Formularinhalten, Text,
InsertTags
Anlegen der einzelnen Positionen:
a) Textpositionen
![]() |
Im ersten Abschnitt werden die einzutragenden Informationen eingestellt. Es gibt folgende Möglichkeiten:
- einen Feldnamen aus dem Formular
- ein fester Text in Anführungszeichen
- InsertTags müssen auch in Anführungszeichen gesetzt werden
Im Beispiel sind das die Formularfelder nachname und vorname und ein fester Text mit Komma. Diese einzelnen Definitionszeilen werden mit Leerzeichen aneinander gereiht (kein Leerzeichen vor einem Komma). Sollte das automatische Leerzeichen in seltenen Situationen stören, kann man dieses abschalten.
In der 2. Spalte kann für die Ausgabe eine Bedingung programmiert werden. Wenn die Bedingung leer ist, wird die Position immer ausgegeben. Im Beispiel ist das Komma abhängig davon, ob das Feld vorname im Formular ausgefüllt (verwendet) wurde. Das Komma wird also nur ausgegeben, wenn der vorname ausgefüllt wurde.
Zusätzlich kann die Bedingung invertiert werden:
verwendet = Feld ausgefüllt / Checkbox oder Radiobutton ausgewählt
leer = Feld ist leer / Checkbox oder Radiobutton nicht ausgewählt
Die festen Texte können auch InsertTags enthalten:
![]() |
In diesem Beispiel wird "Berlin, 04.02.2024" oder aber nur "04.02.2024" im PDF eingetragen, je nachdem, ob ort angegeben ist oder nicht.
Um Checkboxen in der PDF-Vorlage anzukreuzen, verwendet man ein "X" mit dem Checkbox-Wert in der Bedingung
![]() |
In der Zeile „Bemerkungen und Notizen“ können Sie Hinweise zu der Position speichern, beispielsweise bei Checkboxen oder Radiobuttons, wo nur ein „X“ ausgegeben wird, kann hier für die Backend-Ansicht die Option beschrieben werden.
Im folgenden Teil des Backend-Formulars geht es um die Position im PDF, wo genau die gewählte Information eingetragen wird und um die Schriftattribute.
![]() |
Die Position besteht aus der PDF-Seite (bezieht sich auf die Seite in der Vorlage), dem horizontalen Abstand vom linken Seitenrand und dem vertikalen Abstand vom oberen Rand. Optionell kann auch ein rechter Rand eingegeben werden. Das ist oft sinnvoll bei Formularfeldern vom Typ Textarea, wo der Zeilentext umbrechen soll. Abhängig von der verwendeten Schriftart gibt es möglicherweise eine konstante Verschiebung durch Über- und Unterlängen im Font.
Eine gute Möglichkeit, die Positionen zu ermitteln, ist das Ausmessen der PDF-Seite in Programmen, wie Photoshop. In einem Positionstest kann schnell der Versatz ermittelt und in den anderen Positionen eingerechnet werden.
Hinweis: Die Positionen beziehen sich immer auf den Grund-Offset in den FormulareigenschaftenFormulareigenschaften.
Beginnt eine Positionsangabe mit + oder -, dann wird die Position relativ zu vorigen Position platziert. Beispielsweise kann man durch Y-Position „+5“ die Ausgabe auf 5 mm unter der letzten Ausgabeposition setzen.
b) Bildposition
Für die Einbindung von Bildern in das PDF gibt es 4 Möglichkeiten:
• Ein Bild aus der Dateiverwaltung auswählen
• Ein Bild aus dem Upload, also aus dem Formular übernehmen
• Ein Bild, was als DataStream in den Formulardaten enthalten ist (z.B. aus der Unterschriften-Erweiterung do-while/contao-signature-formfield-bundle)
• Ein Bild über die UUID der Datei einbinden
Bei allen Bildpositionen wird die Seite, die Position und die Größe angegeben. Das
Bild wird immer auf die angegebenen Maße zurecht geschnitten (MODE_CROP =
Exaktes Format). Zusätzlich ist es möglich, eine Bedingung für die Einbindung
anzugeben, das Bild wird dann nur eingebunden, wenn die Bedingung erfüllt ist. So lassen sich beispielsweise Bilder passend zu einem Auswahlfeld einbinden.
c) Barcode
Binden Sie einen Barcode aus Ihren Daten in das PDF ein:
Folgende Barcode-Typen zur Auswahl:
(typenabhängig ist teilweise der Zeichensatz eingeschränkt)
2D-Barcodes
• QR-Code - einfache Fehlerkorrektur
• QR-Code - mittlere Fehlerkorrektur
• QR-Code - bessere Fehlerkorrektur
• QR-Code - beste Fehlerkorrektur
• PDF417 (ISO/IEC 15438:2006)
• Datamatrix (ISO/IEC 16022:2006)
1D-Barcodes
• Code 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9
• Code 39 + Checksumme
• Code 39 Extended
• Code 39 Extended + Checksumme
• Code 93 – USS-93
• Standard 2 of 5
• Standard 2 of 5 + Checksumme
• Interleaved 2 of 5
• Interleaved 2 of 5 + Checksumme
• Code 128 AUTO
• Code 128 A
• Code 128 B
• Code 128 C
• EAN 8
• EAN 13
• UPC-A
• UPC-E
• 5-Ziffern UPC-Based Extension
• 2-Ziffern UPC-Based Extension
• MSI
• MSI + Checksumme (module 11)
• Codabar
• Code 11
• Pharmacode
• Pharmacode TWO-TRACKS
• IMB - Intelligent Mail Barcode - Onecode – USPS-B-3200
• Postnet
• Planet
• RMS4CC (Royal Mail 4-state Customer Code) - CBC (Customer Bar Code)
• KIX (Klant index - Customer index)
Wie bei Textpositionen, können hier verschiedene Formulardaten, Texte und InsertTags verknüpft werden. Der resultierende Text wird in dem Barcode kodiert. Der Barcode wird normalerweise in der Standardfarbe ausgegeben, möchten Sie eine andere Farbe verwenden, geben Sie diese im Feld Textfarbe überschreiben an.
Darunter geben Sie die Position im PDF und die Größe des Barcodes an. Zusätzlich ist es möglich, eine Bedingung für die Einbindung anzugeben, der Barcode wird nur eingebunden, wenn die Bedingung erfüllt ist.





