dompdf und Papierausrichtung

So, nach ein wenig dompdf kann ich sagen: easy. Man kann aber die Ausrichtung oder Größen der Seiten innerhalb des Dokuments nicht ändern. Ein mal festgelegt bleibt es beispielsweise bei A4 und Portrait. Allerdings gibt es zwei Entwickler, die das ganze gefixt haben.

https://groups.google.com/forum/#!msg/dompdf/NvTKQkBPxVc/aEK_2NSk3LUJ

1. ykdompdf

Einen ersten Fix gibt es mit ykdompdf.

http://www.mediafire.com/download/g9lkzx3gl170nyb/ykdompdf.php

Wie es anzuwenden ist, ist im Dokument selbst erklärt. ykdompdf.php ist im Grunde überfüssig (siehe Schritt 2) aber die Codeänderungen an dompdf sind zu erledigen. Eigentlich ganz easy, nur ein Update von dompdf würde alles wieder zerstören.

2. dompdf_pages

Bei mir hat Schritt 1 nicht gereicht, es lief nicht rund. Außerdem sind im selben Beitrag oben ein paar Fehler genannt, die in einem weiteren Patch erledigt werden. Achtung: die im Forum angebotene Datei reicht nicht, deshalb hier entlang:

https://github.com/craigfrancis/dompdf/tree/page-merge/pages

dompdf_pages ersetzt ykdompdf.

Allerdings ist da noch eine class.pdf.php.diff. Ohne diese Änderungen werden geänderte Seiten nicht ausgegeben. Das war vermutlich auch mein Problem, so aber habe ich nun den Fix vom Patch und überhaupt alles zusammen 🙂

Man kann das ganze auch fertig bekommen, allerdings mit der dompdf-Version 0.6.0 statt 0.9.irgendwas+

https://github.com/craigfrancis/dompdf/tree/page-merge

Weiteres

Codeigniter

Das kleine How-To in den kommentaren verwendet load_html_file(). Das klappt nur, wenn auch wirklich eine HTML-Datei übergeben wird. Ich verwende dompdf mit Codeigniter und dort klappts nur mit einem load_html()

        $html1 = $this->load->view('/abrechnung/pdf/anschreiben', $data, TRUE);
        $ykdom->set_paper('a4','portrait');
        $ykdom->load_html($html1);
        $ykdom->render();

CSS-Formatierung

Wenn plötzlich eine leere Seite erscheint, dann ist da ein Seitenumbruch im CSS zu viel. Für hübsche Layouts gibts zumindest ein paar wenige Layoutoptionen im CSS.

http://www.css4you.de/printproperty.html

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.