Ich habe ein HTML-Dokument (nicht XHTML), das in Firefox 3 und IE 7 gut dargestellt wird. Es verwendet ziemlich einfache CSS, um es zu gestalten und wird in HTML gut wiedergegeben.
Ich suche nun nach einer Möglichkeit, sie in PDF zu konvertieren. Ich habe es versucht:
- DOMPDF : Es hatte große Probleme mit Tabellen. Ich habe meine großen verschachtelten Tabellen ausgeklammert und das hat geholfen (vorher hat es nur bis zu 128M Speicher verbraucht und ist dann gestorben - das ist meine Speichergrenze in der php.ini), aber es macht ein komplettes Durcheinander von Tabellen und scheint keine Bilder zu bekommen. Die Tabellen waren nur einfaches Zeug mit einigen Randstilen, um einige Linien an verschiedenen Stellen hinzuzufügen;
- HTML2PDF und HTML2PS : Ich hatte tatsächlich mehr Glück mit diesem. Es gerendert einige der Bilder (alle Bilder sind Google Chart URLs) und die Tabelle Formatierung war viel besser, aber es schien einige Komplexität Problem, das ich noch nicht herausgefunden haben und hielt sterben mit unbekannten node_type() Fehler. Ich bin mir nicht sicher, wie es weitergehen soll; und
- Htmldoc Dies scheint zu funktionieren gut auf grundlegende HTML, aber hat fast keine Unterstützung für CSS whatsoever, so dass Sie alles in HTML zu tun haben (ich wusste nicht, es war noch 2001 in Htmldoc-Land ...), so ist es nutzlos für mich.
Ich habe eine Windows-Anwendung namens Html2Pdf Pilot ausprobiert, die eigentlich ziemlich gute Arbeit geleistet hat, aber ich brauche etwas, das zumindest unter Linux läuft und idealerweise auf Abruf über PHP auf dem Webserver läuft.
Was übersehe ich, oder wie kann ich dieses Problem lösen?
9 Stimmen
Html2Pdf verwendet eine eingebettete Instanz des IE, um die Seite zu rendern, und konvertiert diese dann in PDF - wahrscheinlich über den Druckmechanismus des IE.
58 Stimmen
Da es sich um eine Frage aus dem Jahr 2008 handelt, ist dompdf inzwischen viel ausgereifter ;-)
5 Stimmen
Dompdf unterstützt jetzt CSS 2.1 und kann mit
@import
,@media
et@screen
Regeln, und lädt externe Stylesheets. Es kommt auch mit allem gebündelt für sie erforderlich, um zu arbeiten, obwohl es Dinge, die Sie installieren können, um eine bessere Leistung als die Standard-Bibliotheken zu erhalten. code.google.com/p/dompdf0 Stimmen
Ich vermute, dass es das Richtige ist, die Browser dazu zu bringen, das PDF zu erzeugen, weil sie die einzigen sind, die es richtig darstellen. stackoverflow.com/q/25574082/39998
6 Stimmen
2015 Update: Nach der Erforschung eine Menge von Optionen, die wir beschlossen, mit wkhtmltopdf seine ein nettes Dienstprogramm gehen wir mit CSS kämpfen, weil wir externe CSS-Datei haben, aber dann haben wir den Trick des Setzens eines Dummy-Link von CSS auf unserem HTML-Element, das wir konvertieren wollen und die Einstellung der richtigen Pfad es funktioniert wie Magie!!!
0 Stimmen
Weitere Vorschläge in diesem SO-Beitrag
0 Stimmen
Es gibt zwei Versionen von HTML2PDF. Die wirklich alte (2009), die hier verlinkt ist, und die neuere französische Version, die ich in meiner Antwort erwähne.
0 Stimmen
Siehe auch stackoverflow.com/q/10641667/287948
0 Stimmen
@HendraUzia Leider hat dompdf immer noch große Probleme mit der Darstellung von Tabellen. Es fügt leere Seiten in das Dokument ein
0 Stimmen
Hier finden Sie eine Anleitung zu DOMPDF. advancetechtutorial.blogspot.com/2015/09/
0 Stimmen
Sie können Ihr HTML mit Stilen mit html2canvas in ein Canvas konvertieren, dann das Canvas mit canvasObj.toDataURL("image/jpeg") in ein Bild umwandeln, das Bild an das DOM anhängen und es an Ihren PHP-Generator übergeben
0 Stimmen
Wie wäre es mit Google Chrome, dort haben Sie die Möglichkeit als pdf speichern aus der Option "Drucken".
0 Stimmen
Prüfen Sie diese php5-Bibliothek github.com/KnpLabs/snappy einfach zu benutzen und verwendet "wkhtmltopdf"
11 Stimmen
Ich glaube, bald findet jeder Chrome/Chromium kopflos
chrome --headless --print-to-pdf="path/to/pdf" https://your_url
als reichhaltigstes, schnellstes und einfachstes Tool zur Erzeugung von HTML in PDF crbug.com/603559 da es die meisten Html-Funktionen unterstützt, auf die Entwickler bei der Webentwicklung angewiesen sind, und nicht wie die meisten anderen Bibliotheken und Tools komplexe Skripte benötigt.0 Stimmen
Du hast Recht, Chrome Headless sollte gut rendern, aber, würde auf Node, nicht PHP laufen.
1 Stimmen
Diese Frage ist off-topic bei SO, aber on-topic bei softwarerecs.SE. Siehe Wie kann ich HTML mit CSS in PDF konvertieren? .
0 Stimmen
Diese Frage weckt in mir Erinnerungen an 2010 mit PHP und DOMPDF. :)
0 Stimmen
Dompdf ist eine weitere Option. github.com/dompdf/dompdf
0 Stimmen
@Hendra Uzia Nicht reif genug... DOM PDF ist absolut schlecht... habe gerade einen schnellen ultimativen Test gemacht - Tabelle 100% mit 2x 50% Spalten... mit IMG in jeder mit 100% Breite... komplett fehlgeschlagen... und Miniaturbilder ausgegeben
0 Stimmen
Ich verwende TCPDF. Es ist gut, aber es fehlt die CSS-Fähigkeit.
0 Stimmen
Wir schreiben das Jahr 2020 und es fällt mir wirklich schwer, etwas mit dompdf zu erstellen. Und ich rede nicht davon, dass ich CSS2 verwenden muss. Grundlegende Dinge wie das Rendern von Tabellen, Floats funktionieren nicht, alles ist fehlerhaft und man muss sich fragen, warum die Ränder zu weit nach links gehen oder warum das erste Element keinen Rand hat. Versuchen Sie, um Inline-Blöcke und Div-Tabellen zu arbeiten, damit es funktioniert.