HTML-zu-PDF vs. Programmgesteuert erstellen von PDF über PHP
Habe ich eine PHP-Anwendung, die generieren muss einige PDF-Rechnungen und PDF-Stundenzettel mit schönen Kopf - /Fußzeilen. Einige Stackoverflow-Benutzer empfehlen TCPDF erstellen von PDF-Dokumenten. In meiner Forschung entdeckte ich zwei Ansätze zur Erzeugung von PDF-Dateien:
1) Programmgesteuert formatieren der PDF-wie so:
$tcpdf->SetFillColor(255, 0, 0);
$tcpdf->SetTextColor(255);
$tcpdf->SetDrawColor(128, 0, 0);
$tcpdf->SetLineWidth(0.3);
$tcpdf->SetFont('', 'B');
2) Konvertieren von HTML in PDF
Wie kann ich entscheiden, welche ich Vorgehen sollte ich verwenden?
- Hier ist ein nettes tutorial, das ich glauben würde definitiv helfen Sie Tutorial zum dynamischen erstellen von PDF-Dateien in Webseiten
- Obigen link scheint veraltet jetzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann ich nur empfehlen,Zend_Pdf, das ist eine programmatische Methode, die laut Ihrer Klassifizierung.
Einer HTML-Abstraktion ist schön, aber ich glaube nicht, dass Sie die volle macht und Kontrolle eine vollständige geometrie-basierte Zeichnungs-API. Seien Sie vorsichtig Bibliotheken, wie fpdf nicht unterstützt UTF-8 aus der box, und verwenden Sie einen Armen Mann, den parser zu "konvertieren" - HTML-to-PDF.
Hinblick auf Ihre Anwendung, die ich produziert habe, ein system, das erzeugt Vorlagen-Rechnungen. Meine Benutzer können hochladen einer PDF-Vorlage, die extrahiert wird, die von Zend_Pdf. Diese Vorlage wird dann für jede Seite der Rechnung erzeugt, so dass eine einfache Anpassung.
Hinweis, dass mein Publikum sind vor allem Grafik-Designer, die in der Lage sind, die Produktion dieser Vorlagen, so war es die passende Lösung hier. Wenn Sie Ihr Publikum nur mit HTML vertraut, 'converting' HTML in PDF " - vielleicht der beste Weg.
Empfehle ich immer die Erstellung von PDFs dynamisch, aber basierend auf Vorlagen, die bearbeitet werden können mit end-user-tools oder - zumindest - ohne ein Programmierer. In deinem Fall wäre wahrscheinlich das HTML. Für mich die ideale Lösung ist, um eine Office-Vorlage, füllen es mit Werten programmgesteuert und die Ausgabe in das PDF-Format, Wann immer dies technisch möglich ist. Ich mache die office-Vorlage ausfüllen Teil in PHP mit tbsOOO und es funktioniert ganz gut.
Hauptgrund für die Verwendung einer template-basierten Ansatz über die Generierung des Dokuments: der Benutzer kann das design der Vorlage, wie Sie sehen, passen, und Sie werden nicht benötigt, wenn das design geändert werden muss. (Und es wird müssen ändern eines Tages.) Nur wenn die Daten eingefügt werden muss, geändert oder erweitert in irgendeiner Weise, die Programmierer ins Spiel kommt. Das ist eine riesige Arbeitslast aus Ihr zurück.
Hallo, haben Sie zwei Möglichkeiten. Sie können dompdf, die es Ihnen ermöglicht, Ihre design-Dokument als reguläres html-Dokument und style es mit css. Sie können diese Dokument in eine pdf Datei. Meine Erfahrungen waren gut. Ich erbringe eine normale html-Seite mit Zend_View und verwandeln diese in pdf. Auf diese Weise haben Sie eine sehr flexible Vorlage, denn Sie machen alle Art von display Entscheidungen in Ihrem html-Ansicht generieren.
→ siehe Liste der css-Kompatibilität.
Alternativ, die Sie nutzen könnten livedocx. Dies erlaubt auch einen template-basierten Ansatz, aber mehr starr und html-weniger. Ein integration für Zend Framework ist auf dem Weg.
Ich habe reichlich Erfahrung mit allen drei Ansätzen:
Erstellen, das Dokument programmgesteuert mithilfe TCPDF (die, obwohl es wurde abgeleitet von FPDF, unterstützt UTF-8 out of the box). Ich bin zwar ein großer fan von Zend Framework, es muss darauf hingewiesen werden, dass Zend_Pdf ist NICHT Reich genug, noch in seiner feature-set, um auf diese Weise verwendet werden.
Dass ein Grafik-designer erstellen Sie eine Vorlage, laden Sie es mit Zend_Pdf und dann weiteren Inhalt hinzufügen, um es. Zend_Pdf (1.10.2 - 1.10.7) Recht gut funktioniert in diesem Fall, AUßER wenn zu instanziieren versucht, eine neue Seite, und fügen Sie es auf das Dokument - dies warf Lasten von Fehlern.
Konvertierung von HTML in PDF mit htmldoc. Dieser Ansatz gesaugt schlecht, aber vor allem aufgrund der Beschränkungen in der htmldoc.
Habe ich nicht verwendet TCPDF für HTML-zu-PDF-Konvertierung, aber die Beurteilung durch die Allgemeine Qualität der code, den ich vermute, würde es durchaus tun, einen guten job. (Ich habe wirklich gepusht TCPDF bis an die Grenzen, einschließlich rendering grafisch anspruchsvolle Dokumente im RTL-Zeichensätze, Chinesisch, etc, und es hat fehlerfrei durchgeführt). Also, wenn Sie sich entschließen, es zu tun programmgesteuert, würde ich empfehlen, mit TCPDF, aber wenn Sie eine schöne Vorlage von einem Grafiker und wollen nur Dinge hinzufügen, an der Spitze, laden Sie es mit Zend_Pdf und ändern von es ist eine vernünftige Wahl, (obwohl Sie noch bis Ende der Umsetzung Zeilenumbruch und einige andere grundlegende Sachen).
Ich auch empfehlen, die Konvertierung von HTML zu PDF:
Wenn ich einmal erstellt eine PDF-Generierung für eine website, die ich verwendet html2ps und dann konvertiert die postscript-zu-pdf-später.
Schlage ich vor, die programmatische Formatierung.
In der .net Welt habe ich deutlich negativen Erfahrungen mit html zu pdf-Konverter. Sie scheinen zu fallen in 2 Kategorien:
Diejenigen, die 'parse' Ihr html und versuchen Sie es in ein pdf. Diese fehlen Häufig einige wirklich grundlegende features wie Stylesheets und Unterstützung für alles, aber table-basiertes layout.
Diejenigen, die 'print' Ihr html, um ein Bild und den Stock, der in eine pdf-Datei. Diese kann tatsächlich produzieren eine anständige aussehende Dokument. Sie scheinen zu wirken durch die Verknüpfung von einem browser in die Bibliothek, die Ursachen threading Probleme und schlechte performance.
Habe ich mittelmäßige Erfahrungen mit direkter pdf-apis, aber php scheint haben einige deutlich bessere Bibliotheken an dieser front.