Qual é o melhor PDF-API para PHP? [fechadas]


110

Qual destes é o melhor PDF-API para PHP?


6
esta outra questão parece ter sido removida do StackOverflow agora.
rineez

Eu conheço sua velha questão, mas eu preferiria MDF, ele pode lidar com qualquer html complexo, excluindo alguns pontos que já são contados por mdf em mpdf1.com/mpdf/limitations
dev.meghraj

Respostas:


53

Pessoalmente, prefiro usar o tcpdf, que é uma versão avançada e mantida do fpdf.


12
você não especificou razões - uma grande delas é o suporte Unicode em tcpdf, que fpdf totalmente carece. O tcpdf também é mantido ativamente. e também tem uma arquitetura OO decente. conselho: fpdf é basicamente uma coisa antiga que foi substituída por tcpdf.
zanlok

2
O tcpdf não contém recursos essenciais, como incorporação e subconjunto de fontes (importante para idiomas asiáticos).
velcrow

2
Acabei de verificar o site tcpdf e ele parece oferecer suporte a subconjuntos e incorporação de fontes. veja o argumento do subconjunto do método SetFont tcpdf.org/fonts.php
Nerrve

1
tcpdf estava tendo alguns problemas quando usei com fontes unicode urdu.
rineez

1
Se você chamar uma única classe com 24k linhas de código de "OO decente", você deve estar alto. Verifique minha versão refatorada do FPDF para OOP real: github.com/bubach/PdfBuilder
Christoffer Bubach

39

Do site mpdf : "mPDF é uma classe PHP que gera arquivos PDF a partir de HTML codificado em UTF-8. É baseado em FPDF e HTML2FPDF, com uma série de melhorias."

mpdf é superior a FPDF para manipulação de linguagem e suporte UTF-8. Para suporte CJK, ele não suporta apenas incorporação de fontes, mas também subconjuntos de fontes (para que seus PDFs CJK não sejam superdimensionados). TCPDF e FPDF não têm suporte para UTF-8 e Font do mpdf. Ele ainda vem com algumas fontes de código aberto a partir da versão 5.0.


31

Esta é apenas uma revisão rápida de como o fPDF se compara ao tcPDF na área de desempenho nas funções mais básicas de cada biblioteca.

TESTE RÁPIDO

17,0366 segundos para processar 2.000 arquivos PDF usando fPDF || 79,5982 segundos para processar 2.000 arquivos PDF usando tcPDF

VERIFICAÇÃO DE TAMANHO DO ARQUIVO (em bytes)

788 fPDF || 1.860 tcPDF

O código usado era o mais idêntico possível e renderiza apenas um arquivo PDF limpo, sem texto. Também está usando a versão mais recente de cada biblioteca em 22 de junho de 2011.


5
Há uma série de melhorias de desempenho que podem melhorar muito a velocidade do TCPDF (passei de 1 minuto na criação de um único arquivo para cerca de 0,5 segundo): tcpdf.org/performances.php
Dan Smart

1
Essas "melhorias" funcionarão igualmente bem com FPDF e não ajudarão realmente em um benchmark. TCPDF tem cerca de 24.000 linhas de código, enquanto FPDF tem cerca de 2.400 linhas de código.
Christoffer Bubach

Atualize o link do @DanSmart
Albert

22

Achei o mpdf melhor do que o tcpdf em termos de renderização de html. Ele pode analisar estilos css muito melhor e criar PDFs muito semelhantes ao html original.

mpdf ainda suporta coisas css como raio de borda e gradiente etc.

Estou surpreso ao ver por que mpdf é tão menos falado quando se trata de html para pdf.

Confira os exemplos aqui http://www.mpdf1.com/mpdf/index.php?page=Examples

Achei útil para criar faturas, recibos e impressões simples, etc. No entanto, o próprio site diz que os PDFs gerados a partir de mpdf tendem a ser maiores.


2
O link está quebrado. Este pode ser um novo link: mpdf1.com/mpdf/index.php?page=Examples
Stefan

Atualização de agosto de 2019: use como referência mpdf.github.io
CodeJunkie

mpdf, infelizmente, não parece lidar bem com células de tabelas grandes. Assim que o conteúdo ultrapassa uma página, ele começa a diminuir, o que o torna inútil para qualquer projeto que tenha grandes tabelas. Além disso; é fácil de usar, tem desempenho e é bem documentado.
zumek


11

Pessoalmente, prefiro usar o dompdf para páginas PDF simples, pois é muito rápido. você simplesmente alimenta-o com um código-fonte HTML e ele irá gerar a página necessária.

no entanto, para designs mais complexos, prefiro o pdflib mais clássico, que está disponível como pecl para PHP. ele tem maior controle sobre os designs e permite que você faça designs mais complexos, como formas perfeitas em pixels.


Mas há uma desvantagem de usar dompdf é que ele não funciona se você quiser criar vários PDFs de uma vez ou em um loop.
hmjha

5

http://sourceforge.net/projects/html2ps/ , é o melhor se você precisa de css e 3c compatíveis.

se você pode instalar software em seu servidor, sugiro que use http://wkhtmltopdf.org/ .

Também existe um módulo drupal usando wkhtmltopdf :)

PHP consome muitos recursos para converter html em pdf, imho, php não é a linguagem certa para fazer isso (se você espera um grande número de coversion ou grandes arquivos para converter)


Eu voto positivamente para wkhtmltopdf, mas especialmente ao usar um método como o emprego de um conversor externo, o PHP não é o culpado pela perda de velocidade. Eu acho que usar wkhtmltopdf ou prince de asp.net seria praticamente tão rápido quanto em PHP (embora eu use asp.net). Claro, o PHP não tem todo o controle de processo do .net, mas aposto que ainda funciona rápido o suficiente para a maioria dos projetos
Joel Peltonen

4

O Zend_Pdf do Zend Framework é realmente bom. Está no mesmo nível do pdflib em termos de controle de produção e complexidade e é mais portátil porque é uma solução pura de php. Dito isso, é mais lento e usa mais memória do que o pdflib. Módulos Pecl são sempre mais eficientes do que uma solução php.

DOMPdf é a maneira mais fácil de fazer um PDF rapidamente. Como Mike disse, alimente-o com html e ele produzirá um pdf. Sob o capô, ele tem a opção de usar r & ospdf ou pdflib como mecanismo de renderização.


1
O Zend PDF tem problemas significativos (problemas de desempenho se você incorporar PNGs com transparências) [ framework.zend.com/issues/browse/ZF-3392] . Além disso, o Zend PDF é uma ferramenta muito ruim para alterar metadados em PDFs de terceiros, pois não consegue lidar com nada próximo ao padrão PDF completo e trava. No entanto, se você não precisar desses recursos, o Zend PDF funciona muito bem e tem um bom suporte a UTF-8.
chrishiestand

3

Eu pessoalmente gero XSL: FO a partir de PHP e uso o Apache FOP para convertê-lo em PDF. Não é uma solução nativa de PHP, nem muito eficiente, mas funciona bem mesmo se você precisar gerar PDF com layouts muito complexos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.