PDF-Erstellung aus Formulardaten
oder anderen Benachrichtigungen
des Notification-Centers

  Videomitschnitt von der Contao Konferenz 2019

Softleister – Hagen Klemp
im Forum:   do_while
bei GitHub: do-while

Contao Premium Partner aus Berlin
Ich arbeite mit Contao/Typolight seit 2007

Erweiterungen:
BackupDB, Ticker, Backend-Hinweise, Linksplitter
diverse PDF-Erweiterungen

Contao PDF-Erweiterungen

  • PDF-Template
  • mPDF-Template
  • contao-nc-pdf-attachment-bundle*
  • contao-pdfforms-bundle* (pdf_forms)


Weitere ...
Erweiterung für Isotope (z.B. Rechnungen)
Erweiterung für die Library DOM-PDF

* kostenpflichtige Erweiterung, kostenfreie Demo verfügbar

PDF-Template

Mit pdf-template kann eine gespeicherte
PDF-Datei als Layoutvorlage
für die PDF-Ausgabe eines Artikels aktiviert werden.
(Bedienung über die Syndikation-Icons im Artikel)

Es wird direkt das HTML/CSS an die Library übergeben.

Beispiel: Eindruck in den "Firmenbogen" mit Logo, usw.

Verwendet wird die Bibliothek TCPDF.

mPDF-Template

Alternativ kann mit mpdf-template ebenfalls eine
PDF-Datei als Layoutvorlage dienen.
Unterschied ist die verwendete PDF-Library mPDF, auch hier wird direkt das HTML/CSS an die Library übergeben.

mPDF soll besser/anders mit dem CSS umgehen können als TCPDF, was bei pdf-template Verwendung findet.

contao-nc-pdf-attachment-bundle

Diese Erweiterung ist das eigentliche Vortragsthema

Wieder eine PDF-Vorlage, diesmal aber zum Ausfüllen einzelner Positionen mit Daten aus Formulareingaben, Registrierungen oder anderen Quellen.

Hier kann aus Texten, SimpleTokens und InsertTags ein PDF aufgebaut und an die E-Mail angehängt werden.

contao-pdfforms-bundle

(Erweiterung pdf_forms aus Contao 3.x)

Gleiches Konzept, wie bei contao-nc-pdf-attachment-bundle, ist aber direkt dem Formulargenerator zugeordnet.

Das schränkt etwas die Nutzung ein, da Formulare, wie die Registrierung nicht über den Generator laufen.
Die folgenden Ausführungen
sind aber hier fast 1:1 anwendbar.

Ein PDF als NC Attachment

Anwendungen und Einsatzgebiete:

  • Online-Anmeldungen
  • Service-Formulare
  • Umfragen
  • Personalisierung von Dokumenten
  • Präsentationsmappen
  • und vieles mehr ...

Einstellungen im E-Mail-Gateway

Die PDF-Vorlagedatei enthält
das unausgefüllte Formular

Ein Verzeichnis, wo die generierten
PDFs gespeichert werden sollen
überschreiben oder versionieren
Nutzung des Mitgliederverzeichnisses möglich

Eine Kennzeichnung zum
Dateinamen hinzufügen

Einstellungen im E-Mail-Gateway

Entnahme nur bestimmer Vorlagenseiten nach Bedingung

Seiten ohne Einträge übernehmen?

Liste SimpleTokens erstellen (Debug)

Basisverschiebung X/Y
Standard-Schreibfarbe

Titel und Autor (PDF-Eigenschaften)

Einstellungen im E-Mail-Gateway

Das PDF kann geschützt werden!

1) Verschlüsseln, öffnen nur mit Passwort möglich

2) Berechtigungen einschränken, z.B. kein Kopieren von Inhalten zulassen oder Kommentare verbieten

 

(Der Schutz bei PDFs ist ggf. nicht absolut sicher!)

Die einzelnen Einträge

TEXTE

  • bestehen aus festen Texten
  • aus Eingaben per SimpleTokens
  • aus Ersetzungen von InsertTags
  • können von Bedingung abhängen

Jeder Texteintrag kann die Standardfarbe überschreiben

Die einzelnen Einträge

QR-Codes

  • flexibel wie bei Texten
  • SimpleTokens und InsertTags
  • verschiedene Größen verfügbar
  • Farbanpassung

Die einzelnen Einträge

BILDER

  • aus der Dateiverwaltung
  • aus dem Formular-Upload
  • aus einem Data-Stream
  • Bedingungen möglich

Position und Größe werden
angegeben, das Bild wird
bestmöglich proportional
eingepasst.

Die einzelnen Einträge

Felder ankreuzen?

Kann mit dem Textelement realisiert werden.

Schreibe ein großes X genau in das Kästchen.
Mit der Bedingung steuert man,
ob das X geschrieben wird.

 

Welche SimpleTokens gibt es?

Nicht immer ist klar, welche SimpleTokens
überhaupt zur Verfügung stehen.

Fügt im PDF eine Seite mit einer Token-Liste an.
(Nur wenn Sie gleichzeitig im Backend angemeldet sind!)

Treffen alle Einträge ihre Position in der Vorlage?

Um nicht alle Varianten im Frontend durchspielen zu müssen, gibt es einen Test-Download

Füllt alle Felder aus, kreuzt alle Kästchen an
Als Text wird der SimpleToken-Name verwendet

Seitenformate

Die Vorlagenseite bestimmt direkt das Ausgabeformat.

Beispiel: eine Vereinsanmeldung

  • Bestätigungsschreiben (DIN A4)
  • erste Beitragsrechnung (DIN A4)
  • Mitgliedskarte (Scheckkartengröße)
  • persönlicher Trainingsplan (DIN A4 quer)
  • Satzung (10 Seiten DIN A4)

... alles automatisch in einem generierten PDF

Formular unterschreiben?

Mit der Erweiterung contao-signature-formfield-bundle kann man Online auf Touchscreen, Tablet oder Smartphone "unterschreiben".

Die Grafik wird als Daten-Stream im SimpleToken übertragen. Mit dem Bildelement läßt sich die Unterschrift im PDF einbauen.

Beispiel

Grob Aircraft

Entwicklung, Herstellung und Verkauf branchenführender Flugzeuge durch den Einsatz modernster Technologien und höchste Qualitätsstandards.

 

(Mit freundlicher Genehmigung der Grob Aircraft SE)

Query-Report

Service-Formulare im geschützten Bereich können Online ausgefüllt werden.

Ereignismeldung

ankreuzen, wie die CheckBoxen im Online-Fragebogen

Schadensmeldung

genaues Ausfüllen mit den eingegebenen Online-Daten

Möglichkeiten für Entwickler

 

Um spezielle Verhalten zu integrieren, gibt es 3 Hooks:

  1. bevor aus den Daten ein PDF erzeugt wird
  2. für jede einzelne Position
  3. nach der Erzeugung des PDF

Hook pdfnc_BeforePdf

Nach Datenaufbereitung wird der Hook mit einem Array der Daten aufgerufen. Der Hook kann Einträge hin­zu­fügen oder verändern und dann das Array zurückgeben.

Hook pdfnc_Positions

Bei der PDF-Erstellung wird der Hook für jede Position aufgerufen. Hier können alle Positionsdaten mit Ausnahme der Seitennummer manipuliert werden.

Hook pdfnc_AfterPdf

Wird nach der Erstellung und Speicherung und vor der Übergabe an das Notification-Center aufgerufen. Hier können abschließende Aktivitäten erfolgen.

Vielen Dank für Eure Aufmerksamkeit

 

Softleister – Hagen Klemp
E-Mail: info@softleister.de
Twitter: @Softleister


Ich bedanke mich bei:
Grob Aircraft und der Agentur IBWEB GURU S.L. für das Beispiel
und bei Contao Bayern und BugBuster für reveal.js für Contao