Qual è la migliore API PDF per PHP? [chiuso]


110

Quale di queste è la migliore API PDF per PHP?


6
quest'altra domanda sembra essere stata rimossa da StackOverflow ora.
rineez

Conosco la sua vecchia domanda, ma preferirei MDF, può gestire qualsiasi html complesso, esclusi alcuni punti che sono già stati raccontati da mdf su mpdf1.com/mpdf/limitations
dev.meghraj

Risposte:


53

personalmente preferirei andare con tcpdf che è una versione avanzata e mantenuta di fpdf.


12
non hai specificato le ragioni: una delle principali è il supporto Unicode in tcpdf, che a fpdf manca completamente. tcpdf è ancora attivamente mantenuto. e ha anche un'architettura OO decente. parola al saggio: fpdf è fondamentalmente una vecchia cosa che è stata sostituita da tcpdf.
zanlok

2
tcpdf manca di funzionalità critiche come l'incorporamento e il sottoinsieme dei caratteri (importante per le lingue asiatiche).
velcrow

2
Ho appena controllato il sito Web tcpdf e sembra supportare il sottoinserimento e l'incorporamento dei caratteri. vedere l'argomento del sottoinsieme del metodo SetFont tcpdf.org/fonts.php
Nerrve

1
tcpdf ha avuto alcuni problemi quando ho usato con i caratteri unicode urdu.
rineez

1
Se chiami una singola classe con 24k righe di codice "OO decente" devi essere alto. Controlla la mia versione refactored di FPDF per l'OOP effettivo: github.com/bubach/PdfBuilder
Christoffer Bubach

39

Dal sito mpdf : "mPDF è una classe PHP che genera file PDF da HTML codificato UTF-8. Si basa su FPDF e HTML2FPDF, con una serie di miglioramenti."

mpdf è superiore a FPDF per la gestione della lingua e il supporto UTF-8. Per il supporto CJK non solo supporta l'incorporamento dei font, ma anche il sottoinsieme dei font (quindi i tuoi PDF CJK non sono di grandi dimensioni). TCPDF e FPDF non hanno nulla sul supporto UTF-8 e Font di mpdf. Viene fornito anche con alcuni caratteri open source a partire dalla versione 5.0.


31

Questa è solo una rapida rassegna di come fPDF si oppone a tcPDF nell'area delle prestazioni nella maggior parte delle funzioni di base di ciascuna libreria.

TEST DI VELOCITÀ

17.0366 secondi per elaborare 2000 file PDF utilizzando fPDF || 79,5982 secondi per elaborare 2000 file PDF utilizzando tcPDF

CONTROLLO DIMENSIONI FILE (in byte)

788 fPDF || 1.860 tcPDF

Il codice utilizzato era il più identico possibile e restituisce solo un file PDF pulito senza testo. Questo utilizza anche l'ultima versione di ogni libreria al 22 giugno 2011.


5
Ci sono una serie di miglioramenti delle prestazioni che possono migliorare enormemente la velocità TCPDF (sono passato da 1 minuto nella creazione di un singolo file a circa 0,5 secondi): tcpdf.org/performances.php
Dan Smart

1
Questi "miglioramenti" funzioneranno altrettanto bene con FPDF e non saranno di grande aiuto in un benchmark. TCPDF è di circa 24.000 righe di codice, mentre FPDF è di circa 2400 righe di codice.
Christoffer Bubach

Aggiornamento al link di @DanSmart
Albert

22

Ho trovato mpdf migliore di tcpdf in termini di rendering html. Può analizzare molto meglio gli stili CSS e creare PDF molto simili all'html originale.

mpdf supporta anche cose css come border-radius e gradiente ecc.

Sono sorpreso di vedere perché si parla meno di mpdf quando si parla di html in pdf.

Guarda gli esempi qui http://www.mpdf1.com/mpdf/index.php?page=Examples

L'ho trovato utile per progettare fatture, ricevute e semplici stampe ecc. Tuttavia il sito stesso dice che i PDF generati da mpdf tendono ad essere di dimensioni maggiori.


2
Il collegamento è interrotto. Questo potrebbe essere un nuovo collegamento: mpdf1.com/mpdf/index.php?page=Examples
Stefan

Aggiornamento agosto 2019: utilizzare questo per riferimento mpdf.github.io
CodeJunkie

mpdf sfortunatamente non sembra gestire bene le celle di grandi tabelle. Non appena il contenuto supera una pagina, inizia a ridursi, il che lo rende inutile per qualsiasi progetto con tabelle di grandi dimensioni. A parte quello; è facile da usare, performante e ben documentato.
zumek


11

Personalmente preferisco usare dompdf per semplici pagine PDF in quanto è molto veloce. gli dai semplicemente un codice HTML e genererà la pagina richiesta.

tuttavia per progetti più complessi preferisco il più classico pdflib che è disponibile come pecl per PHP. ha un maggiore controllo sui progetti e ti consente di realizzare progetti più complessi come i moduli pixel perfetti.


Ma c'è uno svantaggio nell'usare dompdf è che non funziona se si desidera creare più PDF contemporaneamente o in un ciclo.
hmjha

5

http://sourceforge.net/projects/html2ps/ , è il migliore se hai bisogno della compatibilità css e 3c.

se puoi installare software sul tuo server, ti consiglio di usare http://wkhtmltopdf.org/ .

C'è anche un modulo drupal che usa wkhtmltopdf :)

PHP richiede molte risorse per convertire html in pdf, imho, php non è il linguaggio giusto per farlo (se ti aspetti da convertire un gran numero di coverion o file di grandi dimensioni)


Voto a favore di wkhtmltopdf, ma soprattutto quando si utilizza un metodo come l'utilizzo di un convertitore esterno, PHP non è da biasimare per la perdita di velocità. Penserei che usare wkhtmltopdf o prince da asp.net sarebbe praticamente altrettanto veloce di PHP (anche se io uso asp.net). Certo, PHP non ha tutto il controllo di processo di .net, ma scommetto che funziona ancora abbastanza velocemente per la maggior parte dei progetti
Joel Peltonen

4

Zend_Pdf di Zend Framework è davvero buono. È alla pari con pdflib in termini di controllo dell'output e della complessità ed è più portabile perché è una soluzione php pura. Detto questo, è più lento e utilizza più memoria di pdflib. I moduli Pecl sono sempre più efficienti di una soluzione php.

DOMPdf è il modo più semplice per creare rapidamente un pdf. Come ha detto Mike, alimentalo html e genera un pdf. Sotto il cofano, ha la possibilità di utilizzare r & ospdf o pdflib come motore di rendering.


1
Zend PDF ha notevoli (problemi di prestazioni se si incorporano PNG con trasparenze) [ framework.zend.com/issues/browse/ZF-3392] . Inoltre Zend PDF è uno strumento pessimo per modificare i metadati su PDF di terze parti perché non può gestire nulla di simile allo standard PDF completo e si arresta in modo anomalo. Tuttavia, se non hai bisogno di queste funzionalità, Zend PDF funziona abbastanza bene e ha un buon supporto UTF-8.
chrishiestand

3

Genero personalmente XSL: FO da PHP e utilizzo Apache FOP per convertirlo in PDF. Non è una soluzione nativa di PHP, neanche molto efficiente, ma funziona bene anche se hai bisogno di generare PDF con layout molto complessi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.