pdfLib Seiten Rahmen

openforms bietet die Möglichkeit, PDFs innerhalb eines Formulars zu erstellen. Hierfür wird ein Seiten-Template ( der pdfLib Seiten Rahmen), in das alle dynamischen Inhalte, die in einem Formular erstellt werden können, eingebettet werden, benötigt.

Erstellen eines pdfLib Seiten Rahmen

Ein Dokument diesen Typs kann Unterdokument eines Medien-Ordners sein. Klickt man in der Strukturansicht (TAB: Seitenstruktur bearbeiten) in der Spalte eines Medien-Ordners auf den Button Erstellen, so wird dieser Dokumententyp an Stelle 12 zur Auswahl gestellt.

Mit Klick auf Auswählen kann mein dem Template eine Dokumententitel geben und mit Klick auf Anlegen und Bearbeiten wird ein neues Dokument angelegt.

Man gelangt in die Inhaltsansicht (TAB: Inhalt bearbeiten) des Dokuments.

Pflichtfelder sind im neuerstellten Dokument bereits mit Default-Werten belegt, sodass man für sehr einfache Dokumente bereits das neuerstellte, ohne selbst Anpassungen vorzunehmen, nutzen kann.

Konfiguration eines pdfLib Seiten Rahmen

Ein pdfLib Seiten Rahmen definiert die übergeordnete Seitenstruktur für ein PDF-Dokument. Es ist möglich, dass ein PDF-Dokument aus mehreren Seiten besteht. Jede Seite hat dieselbe übergeordnete Struktur, die innerhalb des pdfLib Seiten Rahmens definiert wird.

pdfLib Optionen

Im Feld pdfLib Optionen kann man strukturelle Optionen definieren, die für alle Inhaltselemente der PDF gelten sollen.

Die Optionen werden hintereinander in der Form key=value ohne Separator (kein Komma oder ähnliches) aneinandergereiht. Optionen, die nicht explizit in diesem Feld aufgelistet sind, bekommen den für diese Option definierten Default-Wert.

Beispiel:

verticalalign=justify linespreadlimit=120%

Alle möglichen Optionen werden nachfolgend aufgelistet.

Schlüsselwortmögliche WerteDefault-Wert

firstlinedist

Abstand zwischen der oberen Grenze, des Inhaltsbereichs und der ersten Textzeile (baseline).

Kommazahl

Konstanter Abstand in Pixeln.

Beispiel: firstlinedist=0.75

Prozentzahl 

Prozentualer Abstand in Abhängigkeit von der relevanten Schriftgröße. Ist die Option fixedleading=true, so ist die relevante Schriftgröße, diejenige, die für das erste Zeichen in der ersten Zeile gewählt worden ist, andernfalls wird die größte Schriftgröße innerhalb des gesamten Zeile gewählt. 

Beispiel: firstlinedist=120%

Schlüsselwort

leading: diakritische Zeichen (bspw. Ä,À) berühren die obere Grenze des Inhaltsbereiches.





leading

fitmethod

Definiert die Strategie, die angewendet wird, wenn der Inhalt (Text) eines Blocks nicht in den Bereich passt, der für diesen vorgesehen ist.

Spielt nur bei Blöcken eine Rolle, die nicht mehrzeilig sind.

Schlüsselwort

auto: Die Fontgröße sowie der leading-Paramter, der für den Textblock vorgesehen ist, wird solange verringert, bis der Text in den Block passt.

nofit: Wenn der Text nicht passt, wird über die Blockgrenze hinausgeschrieben

clip: Der Text wird an der Blockgrenze abgeschnitten

Beispiel: fitmethod=nofit

auto

lastlinedist

Abstand zwischen der unteren Grenze des Inhaltsbereichs und der letzten Textzeile (baseline).

Kommazahl

Konstanter Abstand in Pixeln.

Beispiel: lastlinedist=0.75

Prozentzahl 

Prozentualer Abstand in Abhängigkeit von der relevanten Schriftgröße. Ist die Option fixedleading=true, so ist die relevante Schriftgröße, diejenige, die für das erste Zeichen in der letzten Zeile gewählt worden ist, andernfalls wird die größte Schriftgröße innerhalb des gesamten Zeile gewählt. 

Beispiel: lastlinedist=120%

Schlüsselwort

descender: Zeichen mit Bereichen unterhalb der baseline (z.B. j) berühren die untere Grenze.

Beispiel: lastlinedist=descender

0


linespreadlimit

Die Option hat nur Auswirkungen, wenn verticalalign=justify gesetzt ist.

Maximaler Betrag, der gesetzt werden kann, um die vertikale Ausrichtung (Zentrierung der Zeilen vertikal) zu gewährleisten.

Kommazahl

Konstanter Abstand in Pixeln.

Beispiel: linespreadlimit=20

Prozentzahl

Prozentualer Abstand in Abhängigkeit von dem Zeilenabstand, der im jeweiligen Block gesetzt ist.

Beispiel: linespreadlimit=120%

200%

maxlines

Definiert die maximale Anzahl an Zeilen, die im Inhaltsbereich stehen dürfen.

(positive) Ganzzahl

Konstante Anzahl an Zeilen.

Beispiel: maxlines=20

Schlüsselwort

auto: es wird die maximal mögliche Anzahl an Zeilen innerhalb des Inhaltsbereich verwendet.

auto

minfontsize

Die Option hat nur Auswirkungen, wenn fitmethod=auto gesetzt ist und shrinklimit = exceeded.

In der Regel ist dies nicht der Fall und die Option braucht nicht gesetzt werden.

Kommazahl

Konstante Größe.

Beispiel: minfontsize=12

Prozentzahl

Prozentuale Größe in Abhängigkeit von der Höhe des Blocks

Beispiel: minfontsize=0.2%

0.1%

orientate

Definiert die gewünschte Ausrichtung des Texts.

Schlüsselwort

north: Text wird um 0° gedreht (normal)

east: Text wird um 90° gedreht ("oben" ist nun "rechts")

south: Text wird um 180° gedreht ("oben" ist nun "unten")

west: Text wird um 270° gedreht ("oben" ist nun "links")

Beispiel: orientate=west

north

rotate

Dreht das Koordinatensystem, das die untere, linke Ecke des Inhaltsbereichs als Ursprung (0/0) nimmt. 

Alle Inhalte werden um die angegeben Gradzahl gedreht.

Kommazahl

Konstanter Drehwinkel.

Beispiel: rotate=45.0

0

verticalalign

Vertikale Ausrichtung des Texts im Inhaltsbereich

Schlüsselwort

top: Der Text startet in der ersten Zeile. Weitere Zeilen werden direkt unter der ersten Zeile eingefügt. Wird der Inhaltsbereich nicht durch Text ausgefüllt, so befindet sich unterhalb desselben eine leerer Bereich (whitespace).

centerDer Text wird vertikal zentriert. Füllt der Text den Inhaltsbereich nicht aus, so gibt es weiße Bereiche (Abstände) oberhalb und unterhalb der Texte

bottom: Das Format richtet sich nach der unteren Grenze des Inhaltsbereichs. Wird der Inhaltsbereich nicht ausgefüllt, befindet sich oberhalb des Textes ein leerer Bereich (whitespace).

justifyDer Text wird an der oberen und an der unteren Grenze des Inhaltsbereichs ausgerichtet. Es wird versucht, den Text zu zentrieren, wobei jedoch für die Abstände zwischen den Texten der Maximalwert, der durch die Option linespreadlimit definiert wird, nicht überschritten wird.

Der erste Abstand (zwischen erster Zeile und oberer Grenze) richtet sich dabei ausschließlich nach dem Wert, der in der Option firstlinedist definiert worden ist.

Beispiel: verticalalign=center

top

Konfiguration der Größe des Inhaltsbereichs

Im Abschnitt Inhalts-Bereich kann man festlegen, welcher Teil der PDF als Inhaltsbereich dienen soll. Alle Elemente, die in einem ErgebnisPDF Textflow in einem Formular integriert sind, werden in diesem Inhaltsbereich angezeigt. 

Die Konfiguration geschieht dabe nach folgender Logik:

Im Feld X unten Links (XL) wird die Pixelanzahl hineingeschrieben, die den Abstand vom linken Rand der PDF-Seite zum linken Rand Inhaltsbereichs ausmacht. Im Feld Y unten Links (YL) wird die Pixelzahl hineingeschrieben, die den Abstand vom unteren Rand der PDF-Seite zum unteren Rand des Inhaltsbereichs ausmacht. Analog wird bei X oben Rechts (XR) die Pixelanzahl hineingeschrieben, die den Abstand vom linken Rand der PDF-Seite zum rechten Rand des Inhaltsbereichs ausmacht und  bei Y oben Rechts (YR) die Pixelanzahl, die den Abstand vom unteren Rand der PDF-Seite zum oberen Rand des Inhaltsbereichs ausmacht.

Hinzufügen weiterer PDFLibBlocks

Zusätzlich können weitere Absätze auf den PDFLib Seiten Rahmen gesetzt werden (bspw. ein Logo oder ein Header / Footer, der auf jeder Seite erscheinen soll).

Klickt man auf den Button Erstellen, kann man zwischen zwei Absatz-Typen auswählen:

  1. pdfLib Textblock: fügt einen Text an eine zu definierende Stelle des PDFLib Seiten Rahmen ein. Es können auch dynamische Texte mithilfe von OGNLs erzeugt werden.
  2. pdfLib Bild: fügt ein Bild an eine zu definierende Stelle des PDFLib Seiten Rahmen ein. Texte können Bilder umfliessen.


pdfLib Textblock

UnterBei pdfLib Optionen können die Optionen für den Textblock definiert werden (Vgl. pdfLibTextblock Optionen).

Unter Fließtext kann der Text eingegeben werden, der erscheinen soll. Hier sind auch OGNL-Ausdrücke möglich (in Form: %%OGNL: ...%%).

In den Feldern X und Y kann angegeben werden, an welcher Stelle der pdfLib Textblock auf dem Dokument erscheinen soll. Die Angaben sind in Pixeln vorzunehmen. X gibt den Abstand des linken Rahmens des Textblocks zum linken Rand der PDF-Seite an. Y gibt den Abstand des unteren Rahmens des Textblocks zum unteren Rand der PDF-Seite an. 

Wird die Größe des Blocks nicht explizit in den pdfLib-Optionen definiert, "wandert" die Größe des Blocks mit jedem Zeichen solange in X-Richtung (nach rechts) bis das Ende der PDF-Seite erreicht ist. Mit jeder neuen Zeile "wandert" die Größe des Blocks analog in Y-Richtung (nach oben).


Mithilfe des Feldes Sichtbar Bedingung kann man mit Hilfe eines OGNL-Ausdrucks festlegen, wann der Textblock angezeigt werden soll.

pdfLib Bild

Unter pdfLib Optionen können die Optionen für das Bild definiert werden.

Mit Klick auf den Button Setzen kann ein Bild ausgewählt werden, was innerhalb dieses Blocks angezeigt werden soll. Diese Bild muss bereits als Medium in openforms angelegt worden sein.

In den Feldern X und Y kann angegeben werden, an welcher Stelle der pdfLib Bild auf dem Dokument erscheinen soll. Die Angaben sind in Pixeln vorzunehmen. X gibt den Abstand des linken Rahmens des Blocks  zum linken Rand der PDF-Seite an. Y gibt den Abstand des unteren Rahmens des Blocks zum unteren Rand der PDF-Seite an. 

Wird die Größe des Blocks nicht explizit in den pdfLib-Optionen definiert, so ist die Größe des Originalbilds ausschlaggebend, wie viel Platz der Block auf dem pdf-Lib einnimmt.


Mithilfe des Feldes Sichtbar Bedingung kann man mit Hilfe eines OGNL-Ausdrucks festlegen, wann der Textblock angezeigt werden soll.

Hinzufügen von Seitenzahlen (Page Counter)

Es gibt zusätzlich die Möglichkeit, den PDF Seiten Rahmen mit Seitenzahlen zu versehen.

Hierfür muss im Bereich toolBox ein Absatz vom Typ pdfLib Textblock erstellt werden.

Die pdfLib Optionen sowie die Felder X und Y und die Sichtbar Bedingung können analog zum pdfLib Textblock definiert werden.

Im Fließtext kann man definieren, wie die Seitenzahl angezeigt werden soll.  @@page@@ kann als Platzhalter für die Zahl der aktuellen Seite und @@pageCount@@ als Platzhalter für die Gesamtzahl an Seiten verwendet werden.

Damit die Platzhalter ersetzt werden, muss unter Weitere Eigenschaften in dem Auswahlmenü Toolname die Option Page Counter ausgewählt werden.