PDF-Template

Mit der pdf-template Erweiterung können Sie die PDF-Ausgabe im Artikel (Syndikation) mit einer PDF-Vorlagedatei gestalten.

Mit der Erweiterung pdf-template kann eine gespeicherte PDF-Datei als Layoutvorlage für die PDF-Ausgabe dienen. Die Vorlage muss im Format PDF Specification 1.4 vorliegen. Die Vorlage kann eine oder mehrere Seiten enthalten, die der Reihenfolge nach in die Ausgabe übernommen werden. Werden mehr Seiten ausgegeben, als in der Vorlage vorhanden sind, wiederholt sich die letzte Seite bis zum Ende der Ausgabe.

Varianten

Die CSS-Unterstützung von TCPDF (Bestandteil von Contao) ist teilweise sehr eingeschränkt. Die PDF-Library mPDF kann mit CSS-Anweisungen besser umgehen, so ist eine alternative Erweiterung entstanden:

TCPDF:    do-while/contao-pdf-template-bundle
mPDF:     do-while/contao-mpdf-template-bundle (nicht für Contao 3)

Einstellungen

Die Vorgaben werden in der "Startpunkt einer Webseite" gemacht und gelten auf allen Seiten unterhalb dieses Startpunkts. So ist es möglich sprachen- oder domainabhängig verschiedene PDF-Layouts zu verwenden. Abhängig vom Layout können die Ränder der Textausgabe eingestellt werden, damit nicht Kopf- oder Fußbereich des Layout von den Artikeln überschrieben werden.

HTML/CSS-Unterstützung

Die HTML- und CSS-Unterstüzung von TCPDF ist sehr eingeschränkt. Folgende Tags werden verstanden:
a, b, blockquote, br, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, img, li, ol, p, pre, small, span, strong, sub, sup, table, tcpdf, td, th, thead, tr, tt, u, ul
ANMERKUNG: Alle HTML-Attribute müssen mit Anführungszeichen umschlossen sein.

Ausgabe-CSS hinzufügen

Für die Ausgabe bindet die Erweiterung eine eigene CSS in /files/tcpdf.css ein, die in den Einstellungen auch deaktiviert werden kann. Mit den CSS-Anweisungen muss man viel probieren, es gibt leider keine aktuelle Liste, was TCPDF an CSS versteht und was nicht. Oft geht es nicht nur eine Klasse anzugeben, wenn man aber das Element mit angibt funktioniert es.

Beispiel:
.myclass geht nicht, div.myclass funktioniert.