1722 Stimmen

Wie kann ich HTML und CSS in PDF einfügen?

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/dompdf

5voto

Oliver Schafeld Punkte 15056

Ist die Umwandlung von HTML in PDF wirklich brauchen auf der Serverseite mit PHP erfolgen?

Ich bin gerade auf jsPDF eine client-seitige Lösung mit HTML5/JavaScript. Die MIT-lizensierte Code ist auf GitHub auch.

0 Stimmen

Für mich ist die Bibliothek sehr begrenzt.

5voto

lubosdz Punkte 3894

TCPDF funktioniert gut, hat keine Abhängigkeiten, ist kostenlos und wird ständig auf Fehler überprüft. Es hat eine angemessene Geschwindigkeit, wenn der gelieferte HTML/CSS-Inhalt gut formatiert ist. Ich generiere normalerweise zwischen 50 und 300 kB HTML-Input (einschließlich CSS) und erhalte die PDF-Ausgabe innerhalb von 1-3 Sekunden mit 10-15 PDF-Seiten.

Ich empfehle dringend die Verwendung von saubere Bibliothek als HTML-Hübschformatierer, bevor Sie etwas an TCPDF senden.

4voto

Ich habe eine Menge verschiedener Bibliotheken für PHP ausprobiert. Alle aufgeführten habe ich ausprobiert. Meiner Meinung nach TCPDF Bibliothek ist der beste Kompromiss zwischen Leistung und Benutzerfreundlichkeit. Sie ist sehr einfach zu installieren und zu verwenden und bietet auch in kleinen, mittleren Anwendungen eine gute Leistung. Wenn Sie hohe Leistung und sehr große PDF-Dokumente benötigen, verwenden Sie Zend_PDF Modul, aber bereiten Sie sich auf eine harte Kodierung vor!

0 Stimmen

Zend PDF kann nicht aus HTML konvertieren

3voto

Superdrac Punkte 1210

Web-API

Wenn es Leute gibt, die immer auf der Suche nach dieser Art von Dingen sind, gibt es eine kostenlos Website, die es Ihnen ermöglicht, HTML-Code und Seiten in PDF zu konvertieren. Es gibt auch eine (sehr kleine) API, mit der Sie eine PDF-Datei von einer URL abrufen können.

Prüfen Sie es hier

2voto

Ivan Kurmanov Punkte 145

No PHP sondern ein Java Bibliothek der die Sache erledigt:

Flying Saucer nimmt XML oder XHTML und wendet CSS 2.1-konforme Stylesheets an, um sie in PDF zu rendern

Es ist verwendbar von PHP via system() oder einen ähnlichen Aufruf. Obwohl es erfordert XML Wohlgeformtheit der input .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X