thomassommer.org logo

Alle gute Gabe und alle vollkommene Gabe kommt von oben herab, von dem Vater des Lichts… Die Bibel

PDF programmatisch erstellen mit MPdf

PDF erstellen - programmatisch

Erstellt von Thomas Sommer

18. Januar 2022

Wer eine PHP-Andwendung betreibt und dazu eine gute Lib zur Erstellung von PDF-Dokumenten sucht, dem kann ich MPdf sehr empfehlen. Diese Bibliothek macht aus HTML PDF’s; und das nicht nur billig, Es sind auch zahlreich Styles verfügbar zur Verfeinerung des grafischen Layouts.

Die Bibliothek kann entweder via Composer oder manuell eingebunden werden. Ich persönlich habe es manuell mittels eigenem Autoloader gemacht, und es funktioniert sehr gut. Mit nur 2 Zeilen Code kann ich ein PDF erzeugen:

$pdf = '<html><body><h1>Test X-Office PDF</h1><img src="file://' . CO_COREPATH . '/images/crossoffice-logo.png" id="invoice-logo"></body></html>';

$result = $CO->pdf->createPdf($pdf, 'test.pdf');

Es stehen zudem diverse Ausgabe-Möglichkeiten zur Verfügung: Ob als Download, String oder als Datei speichern.

Zur Bibliothek geht es hier: https://mpdf.github.io

Die Einbindung von MPdf erfolgt in etwa so z.B.:

$mpdf = new Mpdf(['tempDir' => CO_SYSPATH . '/tmp']);

        // mPDF configuration
        $mpdf->useAdobeCJK = true;
        $mpdf->autoScriptToLang = true;
        $mpdf->autoVietnamese = true;
        $mpdf->autoArabic = true;
        $mpdf->autoLangToFont = true;

        // Enable image error logging
        $mpdf->showImageErrors = true;

        // Set a password if set for the voucher
        if (!empty($password)) {
            $mpdf->SetProtection(array('copy', 'print'), $password, $password);
        }

        $mpdf->WriteHTML((string) $html);

        // If $stream is true (default) the PDF will be displayed directly in the browser
        // otherwise will be returned as a download
        if ($stream) {
            return $mpdf->Output($filename . '.pdf', 'I');
            } 
        else {
            $result = $mpdf->Output($this->pdfPath . '/' . $filename, 'S');
            return ['content' => $result,
                    'filepath' => $this->pdfPath . '/' . $filename];
            }

Das könnte Sie auch interessieren…

WordPress-Sicherheit erhöhen

WordPress-Sicherheit erhöhen

Meiner Meinung nach ist es sehr wichtig, die Sicherheit einer WordPress-Website mittels Plugin zu erhöhen. Wer schon...

Raspberry Pi – Der Alleskönner

Raspberry Pi – Der Alleskönner

Für kleine bis mittlere IT-Aufgaben ist der Micro-PC "Raspberry Pi" einfach genial. Mit zahlreichen Erweiterungen...

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht.

18 − eins =