Welches ist die beste PDF-API für PHP? [geschlossen]


110

Welche davon ist die beste PDF-API für PHP?


6
Diese andere Frage scheint jetzt aus StackOverflow entfernt zu sein.
Rineez

Ich kenne seine alte Frage, aber ich würde MDF bevorzugen, es kann mit jedem komplexen HTML umgehen, mit Ausnahme einiger Punkte, die mdf bereits unter mpdf1.com/mpdf/limitations
dev.meghraj

Antworten:


53

persönlich würde ich lieber mit tcpdf gehen, einer erweiterten und gepflegten Version von fpdf.


12
Sie haben keine Gründe angegeben - ein großer Grund ist die Unicode-Unterstützung in tcpdf, die fpdf überhaupt nicht bietet. tcpdf wird auch weiterhin aktiv gepflegt. und es hat auch eine anständige OO-Architektur. Wort an die Weisen: fpdf ist im Grunde eine alte Sache, die von tcpdf abgelöst wurde.
Zanlok

2
In tcpdf fehlen wichtige Funktionen wie das Einbetten und Untermengen von Schriftarten (wichtig für asiatische Sprachen).
Velcrow

2
Ich habe gerade die tcpdf-Website überprüft und sie scheint das Subsetting und Einbetten von Schriftarten zu unterstützen. Siehe das Teilmengenargument zur SetFont-Methode tcpdf.org/fonts.php
Nerrve

1
tcpdf hatte einige Probleme, als ich mit Urdu-Unicode-Schriftarten arbeitete.
Rineez

1
Wenn Sie eine einzelne Klasse mit 24.000 Codezeilen als "anständiges OO" bezeichnen, müssen Sie hoch sein. Schauen Sie sich meine überarbeitete Version von FPDF für die aktuelle OOP an: github.com/bubach/PdfBuilder
Christoffer Bubach

39

Von dem mpdf- Site: "mPDF ist eine PHP-Klasse, die PDF-Dateien aus UTF-8-codiertem HTML generiert. Sie basiert auf FPDF und HTML2FPDF mit einer Reihe von Verbesserungen."

mpdf ist FPDF in Bezug auf Sprachverarbeitung und UTF-8-Unterstützung überlegen. Für die CJK-Unterstützung wird nicht nur das Einbetten von Schriftarten unterstützt, sondern auch die Teilmenge von Schriftarten (damit Ihre CJK-PDFs nicht übergroß sind). TCPDF und FPDF haben nichts über die UTF-8- und Font-Unterstützung von mpdf. Ab Version 5.0 sind sogar einige Open Source-Schriftarten enthalten.


30

Dies ist nur eine kurze Übersicht darüber, wie sich fPDF im Bereich der Leistung der grundlegendsten Funktionen der einzelnen Bibliotheken gegen tcPDF behaupten kann.

GESCHWINDIGKEITSTEST

17.0366 Sekunden zum Verarbeiten von 2000 PDF-Dateien mit fPDF || 79,5982 Sekunden, um 2000 PDF-Dateien mit tcPDF zu verarbeiten

DATEI GRÖSSE PRÜFEN (in Bytes)

788 fPDF || 1.860 tcPDF

Der verwendete Code war so identisch wie möglich und rendert nur eine saubere PDF-Datei ohne Text. Hierbei wird auch die neueste Version jeder Bibliothek vom 22. Juni 2011 verwendet.


5
Es gibt eine Reihe von Leistungsverbesserungen, die die TCPDF-Geschwindigkeit massiv verbessern können (ich bin von 1 Minute beim Erstellen einer einzelnen Datei auf etwa 0,5 Sekunden gegangen
Dan Smart

1
Diese "Verbesserungen" funktionieren genauso gut mit FPDF und helfen bei einem Benchmark nicht wirklich. TCPDF besteht aus ungefähr 24 000 Codezeilen, während FPDF ungefähr 2400 Codezeilen umfasst.
Christoffer Bubach

Update auf @DanSmart 's Link: tcpdf.org/docs/performances
Albert

22

Ich fand mpdf in Bezug auf HTML-Rendering besser als tcpdf. Es kann CSS-Stile viel besser analysieren und PDFs erstellen, die dem ursprünglichen HTML-Code sehr ähnlich sehen.

mpdf unterstützt sogar CSS-Dinge wie Randradius und Farbverlauf usw.

Ich bin überrascht zu sehen, warum über mpdf so wenig gesprochen wird, wenn es um HTML zu PDF geht.

Schauen Sie sich die Beispiele hier an: http://www.mpdf1.com/mpdf/index.php?page=Examples

Ich fand es nützlich für das Entwerfen von Rechnungen, Quittungen und einfachen Ausdrucken usw. Die Website selbst sagt jedoch, dass aus mpdf generierte PDFs tendenziell größer sind.


2
Link ist unterbrochen. Dies könnte ein neuer Link sein: mpdf1.com/mpdf/index.php?page=Examples
Stefan

August 2019 Update: Verwenden Sie dies als Referenz mpdf.github.io
CodeJunkie

mpdf scheint leider nicht gut mit großen Tabellenzellen umzugehen. Sobald der Inhalt eine Seite überschreitet, wird er verkleinert, was ihn für jedes Projekt mit großen Tabellen unbrauchbar macht. Abgesehen davon; Es ist einfach zu bedienen, performant und gut dokumentiert.
Zumek


11

Persönlich bevorzuge ich die Verwendung von dompdf für einfache PDF-Seiten, da es sehr schnell geht. Sie geben ihm einfach eine HTML-Quelle und es wird die erforderliche Seite generiert.

Für komplexere Designs bevorzuge ich jedoch das klassischere pdflib, das als Pecl für PHP erhältlich ist. Es hat eine bessere Kontrolle über Designs und ermöglicht es Ihnen, komplexere Designs wie pixelgenaue Formulare zu erstellen.


Die Verwendung von dompdf hat jedoch den Nachteil, dass es nicht funktioniert, wenn Sie mehrere PDF-Dateien gleichzeitig oder in einer Schleife erstellen möchten.
Hmjha

5

http://sourceforge.net/projects/html2ps/ ist das Beste, wenn Sie CSS und 3c kompatibel benötigen.

Wenn Sie Software auf Ihrem Server installieren können, empfehle ich Ihnen, http://wkhtmltopdf.org/ zu verwenden .

Es gibt auch ein Drupal-Modul mit wkhtmltopdf :)

PHP benötigt viele Ressourcen, um HTML in PDF zu konvertieren. Imho, PHP ist nicht die richtige Sprache, um dies zu tun (wenn Sie eine große Anzahl von Covers oder große Dateien erwarten, die konvertiert werden sollen).


Ich stimme für wkhtmltopdf, aber besonders wenn ich eine Methode wie die Verwendung eines externen Konverters verwende, ist PHP nicht für Geschwindigkeitsverluste verantwortlich. Ich würde denken, dass die Verwendung von wkhtmltopdf oder prince von asp.net praktisch genauso schnell ist wie von PHP (obwohl ich asp.net verwende). Sicher, PHP hat nicht die gesamte Prozesssteuerung von .net, aber ich würde wetten, dass es für die meisten Projekte immer noch schnell genug funktioniert
Joel Peltonen

4

Das Zend_Pdf des Zend Frameworks ist wirklich gut. Es ist pdflib in Bezug auf Kontrolle der Ausgabe und Komplexität ebenbürtig und portabler, weil es eine reine PHP-Lösung ist. Das heißt, es ist langsamer und verbraucht mehr Speicher als pdflib. Pecl-Module sind immer effizienter als eine PHP-Lösung.

DOMPdf ist der einfachste Weg, um schnell ein PDF zu erstellen . Wie Mike sagte, füttere es HTML und es gibt ein PDF aus. Unter der Haube kann entweder r & ospdf oder pdflib als Rendering-Engine verwendet werden.


1
Zend PDF weist erhebliche Probleme auf (Leistungsprobleme, wenn Sie PNGs mit Transparenzen einbetten) [ framework.zend.com/issues/browse/ZF-3392] . Außerdem ist Zend PDF ein sehr schlechtes Tool zum Ändern von Metadaten in PDFs von Drittanbietern, da es nichts verarbeiten kann, was dem vollständigen PDF-Standard nahe kommt, und abstürzt. Wenn Sie diese Funktionen jedoch nicht benötigen, funktioniert Zend PDF recht gut und bietet eine gute UTF-8-Unterstützung.
chrishiestand

3

Ich persönlich generiere XSL: FO aus PHP und verwende Apache FOP , um es in PDF zu konvertieren. Keine PHP-native Lösung, auch nicht sehr effizient, aber sie funktioniert auch dann gut, wenn Sie PDF mit sehr komplexen Layouts generieren müssen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.