Laquelle est la meilleure API PDF pour PHP? [fermé]

110

Laquelle de ces dernières est la meilleure API PDF pour PHP?

coderex
la source
6
cette autre question semble être supprimée de StackOverflow maintenant.
rineez
Je connais sa vieille question, mais je préférerais MDF, il peut gérer n'importe quel html complexe, à l'exception de quelques points déjà mentionnés
dev.meghraj
Ici vous pouvez voir une bonne comparaison entre mPDF et TCPDF
Pmpr

Réponses:

53

Personnellement, je préférerais utiliser tcpdf qui est une version avancée et maintenue de fpdf.

gpilotino
la source
12
vous n'avez pas spécifié de raisons - l'une des plus importantes est la prise en charge d'Unicode dans tcpdf, ce qui manque absolument à fpdf. tcpdf est également toujours activement maintenu. et, il a également une architecture OO décente. mot au sage: fpdf est fondamentalement une vieille chose qui a été remplacée par tcpdf.
zanlok
2
tcpdf manque des fonctionnalités critiques telles que l'incorporation et le sous-ensemble de polices (important pour les langues asiatiques).
velcrow
2
Je viens de vérifier le site Web tcpdf et il semble prendre en charge le sous-ensemble et l'incorporation de polices. voir l'argument de sous-ensemble de la méthode SetFont tcpdf.org/fonts.php
Nerrve
1
tcpdf avait quelques problèmes lorsque j'utilisais des polices unicode urdu.
rineez
1
Si vous appelez une seule classe avec 24k lignes de code "OO décent", vous devez être élevé. Consultez ma version refactorisée de FPDF pour la POO réelle: github.com/bubach/PdfBuilder
Christoffer Bubach
39

Du site mpdf : "mPDF est une classe PHP qui génère des fichiers PDF à partir de HTML encodé en UTF-8. Il est basé sur FPDF et HTML2FPDF, avec un certain nombre d'améliorations."

mpdf est supérieur à FPDF pour la gestion des langues et le support UTF-8. Pour la prise en charge CJK, il prend non seulement en charge l'incorporation de polices, mais également le sous-ensemble de polices (afin que vos PDF CJK ne soient pas surdimensionnés). TCPDF et FPDF n'ont rien sur le support UTF-8 et Font de mpdf. Il est même livré avec certaines polices open source à partir de la version 5.0.

velcrow
la source
31

Ceci n'est qu'un bref aperçu de la façon dont fPDF se démarque de tcPDF dans le domaine des performances des fonctions les plus élémentaires de chaque bibliothèque.

TEST DE RAPIDITÉ

17,0366 secondes pour traiter 2000 fichiers PDF en utilisant fPDF || 79,5982 secondes pour traiter 2000 fichiers PDF à l'aide de tcPDF

VÉRIFICATION DE LA TAILLE DU FICHIER (en octets)

788 fPDF || 1 860 tcPDF

Le code utilisé était aussi identique que possible et restituait juste un fichier PDF propre sans texte. Cela utilise également la dernière version de chaque bibliothèque au 22 juin 2011.

dan
la source
5
Il existe un certain nombre d'améliorations des performances qui peuvent considérablement améliorer la vitesse TCPDF (je suis passé de 1 minute en créant un seul fichier à environ 0,5 seconde): tcpdf.org/performances.php
Dan Smart
1
Ces "améliorations" fonctionneront également bien avec FPDF et n'aideront pas vraiment dans un benchmark. TCPDF est d'environ 24 000 lignes de code, tandis que FPDF est d'environ 2400 lignes de code.
Christoffer Bubach
Mise à jour du lien de @DanSmart
Albert
22

J'ai trouvé mpdf meilleur que tcpdf en termes de rendu html. Il peut analyser beaucoup mieux les styles CSS et créer des fichiers PDF qui ressemblent beaucoup au html original.

mpdf prend même en charge les choses css comme le rayon de la bordure et le gradient, etc.

Je suis surpris de voir pourquoi on parle moins de mpdf quand il s'agit de html en pdf.

Consultez les exemples ici http://www.mpdf1.com/mpdf/index.php?page=Examples

Je l'ai trouvé utile pour concevoir des factures, des reçus et des impressions simples, etc. Cependant, le site Web lui-même dit que les fichiers PDF générés à partir de mpdf ont tendance à être plus grands.

Lune argentée
la source
2
Le lien est rompu. Cela pourrait être un nouveau lien: mpdf1.com/mpdf/index.php?page=Examples
Stefan
Mise à jour d'août 2019: utilisez ceci pour référence mpdf.github.io
CodeJunkie
mpdf ne semble malheureusement pas bien gérer les grandes cellules de tableau. Dès que le contenu dépasse une page, il commence à se réduire, ce qui le rend inutile pour tout projet comportant de grandes tables. Mis à part cela; il est facile à utiliser, performant et bien documenté.
zumek
13

Essayez TCPDF . Je trouve que c'est le meilleur jusqu'ici.

Pour un tutoriel détaillé sur l'utilisation des deux classes de génération de pdf les plus populaires: TCPDF et FPDF .. veuillez suivre ce lien: PHP: Créez facilement des PDF à la volée avec TCPDF et FPDF

J'espère que ça aide.

Mukesh Chapagain
la source
Crushes parfois dans Firefox avec réinitialisation de la connexion. Je n'ai pas vérifié avec les autres navigateurs.
kta
11

Personnellement, je préfère utiliser dompdf pour des pages PDF simples car c'est très rapide. vous lui alimentez simplement une source HTML et il générera la page requise.

cependant, pour les conceptions plus complexes, je préfère le pdflib plus classique qui est disponible en pecl pour PHP. il a un meilleur contrôle sur les conceptions et vous permet de faire des conceptions plus complexes comme des formes au pixel près.

Mike Valstar
la source
Mais l'utilisation de dompdf présente un inconvénient: cela ne fonctionne pas si vous souhaitez créer plusieurs fichiers PDF à la fois ou en boucle.
hmjha
5

http://sourceforge.net/projects/html2ps/ , est le meilleur si vous avez besoin de la compatibilité css et 3c.

si vous pouvez installer un logiciel sur votre serveur, je vous suggère d'utiliser http://wkhtmltopdf.org/ .

Il existe également un module drupal utilisant wkhtmltopdf :)

PHP prend de nombreuses ressources pour convertir du HTML en pdf, à mon humble avis, php n'est pas le bon langage pour le faire (si vous vous attendez à un grand nombre de conversions ou de gros fichiers à convertir)

Strae
la source
Je vote pour wkhtmltopdf, mais surtout lors de l'utilisation d'une méthode comme l'utilisation d'un convertisseur extérieur, PHP n'est pas responsable de la perte de vitesse. Je pense qu'utiliser wkhtmltopdf ou prince d'asp.net serait pratiquement aussi rapide que PHP (bien que j'utilise asp.net). Bien sûr, PHP n'a pas tout le contrôle des processus de .net, mais je parierais que cela fonctionne encore assez vite pour la plupart des projets
Joel Peltonen
4

Le Zend_Pdf du Zend Framework est vraiment bon. Il est à égalité avec pdflib en termes de contrôle de sortie et de complexité et est plus portable car c'est une solution php pure. Cela dit, il est plus lent et utilise plus de mémoire que pdflib. Les modules Pecl sont toujours plus efficaces qu'une solution php.

DOMPdf est le moyen le plus simple de créer rapidement un pdf. Comme Mike l'a dit, alimentez-le en HTML et il produit un pdf. Sous le capot, il a la possibilité d'utiliser r & ospdf ou pdflib comme moteur de rendu.

txyoji
la source
1
Zend PDF a des problèmes de performances importants (problèmes de performances si vous intégrez des PNG avec des transparents) [ framework.zend.com/issues/browse/ZF-3392] . De plus, Zend PDF est un très mauvais outil pour modifier les méta-données sur des PDF tiers car il ne peut rien gérer de près du standard PDF complet et il plante. Cependant, si vous n'avez pas besoin de ces fonctionnalités, Zend PDF fonctionne plutôt bien et a un bon support UTF-8.
chrishiestand
3

Je génère personnellement XSL: FO à partir de PHP et j'utilise Apache FOP pour le convertir en PDF. Pas une solution native PHP, pas très efficace non plus, mais elle fonctionne bien même si vous avez besoin de générer des PDF avec des mises en page très complexes.

Lukáš Lalinský
la source