Hey Community
Ich habe mich endlich an die modifizierung der automatischen PDF-Ausgabe von Contao gewagt. Bei der Recherche habe ich viele Fragen diesbezüglich gefunden, jedoch lediglich eine sehr gute Anleitung wie dies zu machen ist.
Contao Tutorial
Leider ist nicht beschrieben, wie man einen spezifischen Footer hinzufügen kann. Das Vorgehen für eine eigene Fusszeile etwas anders. Ich denke, um die nachfolgenden Änderungen erfolgreich anzuwenden ist es wichtig, dass ihr das obige Tutorial zumindest einmal duchgelesen habt.
Ladet die Dateien "tcpdf.php" (unter: /plugins/tcpdf/tcpdf.php) und "Controller.php" (unter: /system/libraries/) herunter und erstellt eine Sicherheitskopie.
Jetzt muss die Datei "tcpdf.php" um eine eigene Klasse ergänzt werden. Ich habe diese ganz am Ende eingefügt (ca. Zeile 17464).
Ursprüngliches Dateiende:
PHP-Code:
$this->textrendermode = $textrendermode;
$this->textstrokewidth = $stroke * $this->k;
}
} // END OF TCPDF CLASS
}
//============================================================+
// END OF FILE
//============================================================+
?>
Mit eingeschobener Klasse:
PHP-Code:
$this->textrendermode = $textrendermode;
$this->textstrokewidth = $stroke * $this->k;
}
} // END OF TCPDF CLASS
class MYPDF extends TCPDF {
// Page footer
public function Footer() {
// Position at 15 mm from bottom
$this->SetY(-15);
// Set font
$this->SetFont('helvetica', 'I', 8);
// Page number
$this->Cell(0, 10, 'Dein Spezieller Text', 0, false, 'C', 0, '', 0, false, 'T', 'M');
}
}
}
//============================================================+
// END OF FILE
//============================================================+
?>
Diese eingeschobene Klasse erbt von der Klasse "TCPDF" und überschreibt deren Funktion für die Ausgabe einer Fusszeile. Für allfällige weitere Manipulationen habe ich die Signatur der Funktion "Cell", die für die Ausgabe zuständig ist herausgesucht:
PHP-Code:
// Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=0, $link='', $stretch=0, $ignore_min_height=false, $calign='T', $valign='M')
Nachdem der Ausgabetext und dessen Formatierung eingestellt ist, müsst ihr die entsprechende Funktion auch noch aufrufen.
Dafür öffnet die Datei "Controller.php" und sucht nach der Stelle bei der eine TCPDF Instanz erzeugt wird (war bei mir auf Zeile 1089, sucht am besten nach "$pdf"). Das müsste dan in etwa so aussehen:
PHP-Code:
// Create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true);
Diese Zeile soll nun durch die folgende ersetzt werden:
PHP-Code:
// Create new PDF document
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true);
Vorausgesetzt, ihr habt alles richtig gemacht und ich keine Fehler im Tutorial, sollte die PDF-Ausgabe jetzt mit der entsprechenden Fusszeile versehen sein.
Ich hoffe das ganze hilft dem einen oder anderen etwas weiter.
Quelle:
http://www.tcpdf.org/examples.php
Lesezeichen