Converter HTML + CSS em PDF [fechado]

1628

Eu tenho um documento HTML (não XHTML) que renderiza bem no Firefox 3 e IE 7. Ele usa CSS bastante básico para estilizá-lo e renderiza bem no HTML.

Agora estou procurando uma maneira de convertê-lo em PDF. Eu tentei:

  • DOMPDF : tinha enormes problemas com tabelas. Eu considerei minhas grandes tabelas aninhadas e isso ajudou (antes de consumir até 128 milhões de memória e depois morrer - esse é o meu limite de memória no php.ini), mas faz uma bagunça completa de tabelas e parece não ter imagens. As tabelas eram apenas coisas básicas com alguns estilos de borda para adicionar algumas linhas em vários pontos;
  • HTML2PDF e HTML2PS : Na verdade, tive mais sorte com isso. Ele renderizou algumas das imagens (todas as imagens são URLs do Google Chart) e a formatação da tabela foi muito melhor, mas parecia ter algum problema de complexidade que ainda não descobri e continuei morrendo com erros desconhecidos de node_type (). Não tenho certeza para onde ir a partir daqui; e
  • Htmldoc : isso parece funcionar bem em HTML básico, mas quase não tem suporte para CSS, então você precisa fazer tudo em HTML (eu não sabia que ainda era 2001 em Htmldoc-land ...), portanto, é inútil para mim.

Eu tentei um aplicativo do Windows chamado Html2Pdf Pilot que realmente fez um trabalho bastante decente, mas eu preciso de algo que seja no mínimo executado no Linux e, idealmente, executado sob demanda via PHP no servidor da Web.

O que estou perdendo ou como posso resolver esse problema?

cletus
fonte
9
O Html2Pdf, na verdade, usa uma instância incorporada do IE para renderizar a página e depois a converte em PDF - provavelmente através do mecanismo de impressão do IE.
Joel Mueller
55
como é uma pergunta de 2008, o dompdf está muito mais maduro agora. ;-)
Hendra Uzia
5
dompdf agora suporta CSS 2.1 e pode lidar com @import, @mediae @screenregras, e irá carregar folhas de estilo externas. Ele também vem com tudo o necessário para que ele funcione, embora haja algumas coisas que você pode instalar para obter melhor desempenho do que as bibliotecas padrão. code.google.com/p/dompdf
totallyNotLizards
6
Atualização de 2015: Depois de pesquisar muitas opções, decidimos usar o wkhtmltopdf. É um bom utilitário, que enfrentamos CSS porque temos um arquivo CSS externo, mas aplicamos o truque de colocar um link fictício de CSS em nosso elemento HTML, o que queremos converter e definir o caminho certo funciona como MAGIC !!!
Anshul Nigam
10
Acredito que em breve todos achem o Chrome / Chromium decapitado chrome --headless --print-to-pdf="path/to/pdf" https://your_url como a ferramenta de geração de html para pdf mais rica, mais rápida e fácil crbug.com/603559 , pois suporta a maioria dos recursos de html que os desenvolvedores confiam no desenvolvimento da web e não são atraídos por scripts complexos, como a maioria dos outros. bibliotecas e ferramentas fazem.
Ebrahim Byagowi

Respostas:

551

Importante: observe que esta resposta foi escrita em 2009 e pode não ser a solução mais econômica hoje em 2019. As alternativas online são melhores hoje do que eram na época.

Aqui estão alguns serviços online que você pode usar:


Dê uma olhada no PrinceXML .

Definitivamente, é o melhor conversor de HTML / CSS para PDF disponível no mercado, embora não seja gratuito (mas a sua programação também pode não ser gratuita, por isso, se você economizar 10 horas de trabalho, estará em casa (já que você também precisa leve em consideração que as soluções alternativas exigirão que você configure um servidor dedicado com o software certo)

Ah, sim, eu mencionei que esta é a primeira (e provavelmente apenas) solução HTML2PDF que oferece ACID2 completo ?

Amostras PrinceXML

SchizoDuckie
fonte
16
Minha empresa escreveu um serviço da Web construído em torno do Prince. Custos iniciais significativamente mais baratos e utilizáveis ​​sem a necessidade de instalar nada: docraptor.com
Joel Meador
6
Eu também usei o DocRaptor. Maneira impressionante de obter os benefícios do Prince sem ter que pagar pela licença cara. Parabéns por um ótimo produto, Joel.
Nate365 15/01/11
22
Muito caro. O WKHTMLTOPDF (veja outra resposta) é gratuito, faz o trabalho e usa o webkit, o que é incrível.
thomallen
1
há serviço Saas de qualidade igual ou melhor por uma fração do preço - consulte htm2pdf.co.uk
user1914292
5
Se você tiver acesso à linha de comando e NÃO quiser pagar US $ 3500, o PhantomJS com este script: github.com/ariya/phantomjs/blob/master/examples/rasterize.js pode ser uma solução - é a maneira mais fácil e gratuita!
chjortlund
666

Dê uma olhada wkhtmltopdf. É de código aberto, baseado no webkit e gratuito.

Escrevemos um pequeno tutorial aqui .

EDIT (2017):

Se fosse para construir algo hoje, eu não seguiria mais esse caminho.
Mas usaria http://pdfkit.org/ .
Provavelmente retirando todas as dependências do nodejs, para rodar no navegador.

Mic
fonte
10
Este opera com a melhor premissa IMO. Faça a conversão do Boostrap de um renderizador existente em vez de escrever um do zero - não uma tarefa trivial. Além disso, o Webkit é escrito em C ++ e, portanto, muito mais rápido e muito menos trabalhoso do que a implementação baseada em PHP.
Koobz
3
Tivemos grandes problemas ao tentar fazer isso renderizar fontes corretamente nos servidores CentOS. Após literalmente semanas de brincadeira, parece que a única opção é não usar o CentOS.
Abhi Beckert
1
ATENÇÃO! Se você usar o wkhtmltopdf (pelo menos no meu sistema, XAMPP no Windows 7 de 64 bits), em todos os casos que tentei, as imagens .gif não aparecerão no arquivo PDF. Tentei várias soluções sugeridas em vários lugares, como "width" e "height", e escrevi os URIs de acordo com as convenções diferentes. Nada que eu tentei fez com que os gifs aparecessem (em particular, nem mesmo a sugestão "width" e "height", que tentei usar estilos in-line e os atributos HTML arcaicos e brutos de "width" e "height"). No entanto, trocar as imagens para .jpg funcionou na primeira tentativa.
Dan Nissenbaum 18/11/11
6
Esta abstração é bastante agradável, mas mikehaertl.github.io/phpwkhtmltopdf
saada
1
Como os serviços comerciais eram muito caros para nós, implementamos o WKHTMLTOPDF como um serviço de nuvem gratuito html2pdfrocket.com para qualquer pessoa usar e, em seguida, o utilizamos para nossos clientes. Fizemos dessa maneira para que nossos clientes não tivessem que instalar exe em seus servidores etc. e funcionassem em várias plataformas. Definitivamente, classifico WKHTMLTOPDF se você estiver criando seu próprio serviço.
precisa saber é o seguinte
150

Após alguma investigação e puxar o cabelo em geral, a solução parece ser HTML2PDF . O DOMPDF fez um péssimo trabalho com tabelas, bordas e até layout moderadamente complexo e o htmldoc parece razoavelmente robusto, mas é quase completamente ignorante do CSS e não quero voltar a fazer o layout HTML sem o CSS apenas para esse programa.

O HTML2PDF parecia o mais promissor, mas eu continuava tendo esse erro estranho sobre argumentos de referência nulos para node_type. Finalmente encontrei a solução para isso. Basicamente, o PHP 5.1.x funcionou bem com substituições regex (preg_replace_ *) em strings de qualquer tamanho. O PHP 5.2.1 introduziu uma diretiva de configuração do php.ini chamada pcre.backtrack_limit . O que esse parâmetro de configuração faz é limitar o comprimento da string para a qual a correspondência é feita. Por que isso foi introduzido, eu não sei. O valor padrão foi escolhido como 100.000. Por que um valor tão baixo? Mais uma vez, não faço ideia.

Um bug foi levantado contra o PHP 5.2.1 para isso , que ainda está aberto quase dois anos depois .

O mais assustador disso é que, quando o limite é excedido, a substituição falha silenciosamente . Pelo menos, se um erro tivesse sido gerado e registrado, você teria alguma indicação do que aconteceu, por que e o que alterar para corrigi-lo. Mas não.

Então, eu tenho um arquivo HTML de 70k para transformar em PDF. Requer as seguintes configurações do php.ini:

  • pcre.backtrack_limit = 2000000; # provavelmente mais do que eu preciso, mas tudo bem
  • limite_de memória = 1024M; # sim, um gigabyte ; e
  • max_execution_time = 600; # sim, 10 minutos .

Agora, o leitor astuto deve ter notado que meu arquivo HTML é menor que 100k. A única razão pela qual posso adivinhar o motivo pelo qual encontrei esse problema é que o html2pdf faz uma conversão em xhtml como parte do processo. Talvez isso tenha me dominado (embora quase 50% de inchaço pareça estranho). Seja qual for o caso, o acima funcionou.

Agora, o html2pdf é um recurso pesado. Meu arquivo de 70k leva aproximadamente 5 minutos e pelo menos 500-600M de RAM para criar um arquivo PDF de 35 páginas. Infelizmente, não é rápido o suficiente (de longe) para um download em tempo real e o uso da memória coloca a taxa de uso da memória na ordem de 1000 para 1 (600M de RAM para um arquivo de 70k), o que é totalmente ridículo.

Infelizmente, é o melhor que eu proponho.

cletus
fonte
1
@ Cletus, você pode me dizer sobre a versão estável do HTML2PDF. O exemplo link acima tem depreciado
Ripa Saha
Para a versão mais recente, consulte github.com/spipu/html2pdf
Luke Wenke
1
Typo Grim se torna mais sombrio: relação de uso de memória é da ordem de 10.000 para 1 lol
MickLH
Funciona tão ruim quanto mPDF ... mais rápido, mas não preciso ... e converter fontes TTF é incrivelmente doloroso ... eles ainda têm uma biblioteca independente "tc-lib-pdf-font" apenas para gerar fontes
Martin Zvarík
125

Por que você não tenta mPDF versão 2.0 ? Usei-o para criar um documento em PDF. Funciona bem.

Enquanto isso, o mPDF está na versão 5.7 e é mantido ativamente, em contraste com o HTML2PS / HTML2PDF

Mas lembre-se de que a documentação pode ser realmente difícil de manusear. Por exemplo, dê uma olhada nesta página: https://mpdf.github.io/ .

Tarefas muito básicas em torno de html para pdf podem ser realizadas com esta biblioteca, mas tarefas mais complexas levarão algum tempo lendo e "compreendendo" a documentação.

Karthick
fonte
1
Eu tentei um monte de sugestões aqui. Até o momento, este foi enviado e elaborado de maneira imediata e sem complicações, e os documentos são realmente incríveis em comparação com o resto. As instruções de uso estão claramente escritas.
Smith Smithy 15/09
mPDF dando-me algumas dificuldades graves ao postar tags de html com fundo imagem ou marcas de banco de dados:mPDF error: IMAGE Error (http://www.example.com/folder/image.jpg): Error parsing image file - image type not recognised, and not supported by GD imagecreate
Stefan
A versão 6.0 funciona da maneira esperada: inclua-a (ou em uma estrutura, carregue-a) instanciada, preencha com as suas coisas, produza-as de uma maneira ou de outra ... É isso!
toesslab
Bem, o MPDF está funcionando bem, é verdade! Mas o código e a documentação são inconsistentes - é realmente difícil realizar uma tarefa mais complexa, por exemplo, criar uma carta sobre a norma din.
Qullbrune
Afirma que é muito mais lento que o html2fpdf. Mas para o conteúdo básico, achei muito rápido (faturas, relatórios, etc.). A enorme vantagem para mPDF é quase não existem requisitos de extensão PHP (funciona fora da caixa em hospedagem compartilhada)
João
70

1) use MPDF !

a) extrair em yourfolder

b) criar arquivo.php em yourfoldere inserção tal código:

<?php
include('../mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML('<p style="color:red;">Hallo World<br/>Fisrt sentencee</p>');
$mpdf->Output();   exit;
 ?>

c) abra o arquivo.php no seu navegador




2) Use pdfToHtml !

1) extraia o pdftohtml.exe para a sua pasta raiz:

2) dentro dessa pasta, no arquivo anyfile.php , coloque este código (supondo que também exista uma fonte example.pdf):

<?php
$source="example.pdf";
$output_fold="FinalFolder";

    if (!file_exists($output_fold)) { mkdir($output_fold, 0777, true);}
$result= passthru("pdftohtml $source $output_fold/new_filename",$log);
//var_dump($result); var_dump($log);
?>

3) entre no FinalFolder e haverá os arquivos convertidos (quantas páginas, como o PDF de origem tinha ..)

tazo todua
fonte
Eu tentaria Grabz: a API deles suporta CSS, JavaScript e a maioria dos outros tipos de recursos. Ele só precisa ser referenciado com URLs absolutas ou tornado embutido e incluído no HTML enviado ao serviço. Tente aqui: grabz.it/html-to-pdf-image-api.aspx
GrabzIt não é livre
Chatoxz
56

Caixa TCPDF . Possui algumas funcionalidades de HTML para PDF que podem ser suficientes para o que você precisa. Também é grátis!

Darryl Hein
fonte
1
-lo do suporte é para renderização de HTML é bastante limitado, você pode querer ler este: tcpdf.org/doc/classTCPDF.html#ac3fdf25fcd36f1dce04f92187c621407
Hendra Uzia
1
mas o estilo css não está funcionando
KBK 16/11
32

Apenas para aumentar o encadeamento, tentei o DOMPDF e funcionou perfeitamente. Eu usei DIVe outros elementos de nível de bloco para posicionar tudo, mantive-o estritamente CSS 2.1 e jogou muito bem.

Filip Dupanović
fonte
31

Sugiro DocRaptor (que usa PrinceXMLcomo o "mecanismo")

aRahmanS29
fonte
Infelizmente, impossível de usar se você deseja gerar arquivos PDF grandes com muitas imagens. Acho que há um limite de tempo de 60 segundos nas solicitações e, se o Docraptor precisar fazer o download de muitos arquivos, isso será excedido e nenhum arquivo será criado.
Vilhelm
1
Esse problema mencionado por Vilhelm foi corrigido.
illbzo1
30

Já foi mencionado, mas eu gostaria de confirmar que o mpdf é o conversor de HTML para pdf mais fácil, mais poderoso e mais gratuito do mercado. O céu é realmente o limite. Você pode até gerar PDF de dados dinâmicos gerados pelo usuário.

Por exemplo, um cliente queria um sistema CMS para poder atualizar o tracklist da música que tocava em seu clube. Isso não era problema, mas ele também queria que os usuários pudessem baixar um .pdf da lista de reprodução, e esse pdf para download também precisava ser atualizado pelo cms. Graças ao mpdf, com alguns loops simples e variáveis ​​intercaladas, eu poderia fazer exatamente isso. Algo que eu pensei que levaria semanas literalmente me levou minutos.

Ótimo artigo que me ajudou a começar.

Starkers
fonte
7
Um PDF de uma lista de reprodução. Deus me ajude.
Henrik Erlandsson
29

Boas notícias! Snappy !!

O Snappy é uma biblioteca PHP5 de código aberto muito fácil , permitindo a geração de miniaturas, instantâneos ou PDF a partir de uma página url ou html. E ... ele usa o excelente wkhtmltopdf baseado em webkit

Aproveitar! ^ _ ^

Paulo Coghi - Restabelecer Monica
fonte
1
Criei uma API HTTP que usa o Snappy (com base no wkhtmltopdf). Você pode passar em uma URL e converte a página de HTML para PDF: github.com/Dellos7/dhtml2pdf
David López
26

Bem, se você deseja encontrar uma biblioteca perfeita de conversor de XHTML + CSS para PDF, esqueça. Está longe de ser possível. Porque é como encontrar um navegador perfeito (mecanismo de renderização XHTML + CSS). Nós temos um? IE ou FF?

Eu tive algum sucesso com o DOMPDF. O problema é que você precisa modificar seu código HTML + CSS para acompanhar o funcionamento da biblioteca. Fora isso, tenho bons resultados.

Ver abaixo:

HTML original

Convertendo HTML para PDF

datasn.io
fonte
25

O HTML2PDF e o HTML2PS que foram mencionados originalmente no post de abertura estavam falando sobre um pacote de 2009 com este link

Mas há um HTML2PDF melhor

É baseado no TCPDF, embora parcialmente em francês.

Você pode ter cabeçalhos ou rodapés de tabelas que se repetem nas páginas e ter números de página e total de páginas. Veja seus exemplos . Uso-o há mais de três anos e recomendo-o.

Luke Wenke
fonte
1
Por que isso não está no topo? Ele funciona sem nenhuma dependência extra e é bom o suficiente para os aplicativos da maioria das pessoas sem ter que gastar US $ 3800!
degenerada
22

Estou usando o fpdf para produzir arquivos PDF usando PHP. Até agora, está funcionando bem para mim produzir resultados simples.

stealthyninja
fonte
21

Há um tutorial sobre o devzone do Zend sobre a geração de pdf a partir do php ( parte 1 , parte 2 ) sem bibliotecas externas. Eu nunca implementei esse tipo de solução, mas como tudo é php, você pode achar mais flexível implementar e depurar.

yoavf
fonte
Sim, mas isso não converte HTML ... isso é geração de PDF em bruto
Martin Zvarík
16

Tente pegar a versão mais recente do dompdf noturno - eu estava usando uma versão mais antiga que era um péssimo recurso e demorou uma eternidade para renderizar meu pdf. Depois de pegar uma noite a partir daqui .

Levou apenas alguns segundos para gerar o PDF - E foi tão bem renderizado quanto no PrinceXML / Docraptor . Parece que eles otimizaram seriamente o código dompdf desde a última vez que o usei!

Arni J
fonte
dompdf é realmente uma ótima opção. Eu usei duas vezes e é muito fácil. Vou recomendar para tentar dompdf. Aqui está o link para o repo oficial github: github.com/dompdf/dompdf
Rituparna sonowal
16

A menção de Darryl Hein acima ao TCPDF é provavelmente uma ótima idéia. O código de Nicola Asuni é bastante útil e poderoso. O único assassino é que, se você planeja mesclar arquivos PDF com o PDF gerado, ele não possui esses recursos. Você precisaria criar o PDF e mesclá-lo usando algo como PDFTK de Sid Steward (www.pdflabs.com/tools/pdftk-the-pdf-toolkit/).

aracnídeo
fonte
13

Em termos de custo, o uso de um serviço da Web (API) pode, em muitos casos, ser a abordagem mais sensata. Além disso, ao terceirizar esse processo, você libera sua própria infraestrutura / back-end e, desde que esteja usando um serviço respeitável, garante compatibilidade com o ajuste de padrões da web, tempo de atividade, tempos curtos de processamento e entrega rápida de conteúdo.

Eu fiz algumas pesquisas na maioria dos serviços da Web atualmente no mercado. Encontre abaixo as APIs que eu acho que vale a pena mencionar neste segmento, em um pedido com base na relação preço / valor. Todos eles estão oferecendo classes e pacotes PHP pré-compostos.

  1. pdflayer.com - Custo: $ - Qualidade: ☆☆☆☆
  2. docraptor.com - Custo: $$$ - Qualidade: ☆☆☆☆☆
  3. pdfcrowd.com - Custo: $$ - Qualidade: ☆☆☆

Qualidade:

Tendo o mecanismo de alta qualidade PrinceXMLcomo espinha dorsal, o DocRaptor oferece claramente a melhor qualidade de PDF, retornando documentos PDF altamente polidos e bem convertidos. No entanto, o serviço da API pdflayer fica bem próximo aqui. Pdfcrowd não necessariamente pontua com qualidade, mas com velocidade de processamento.

Custo:

pdflayer.com - Como indicado acima, a opção mais econômica aqui é pdflayer.com, oferecendo um plano de assinatura totalmente gratuito para 100 PDFs mensais e assinaturas premium que variam entre US $ 9,99 e US $ 119,99. O preço de 10.000 documentos mensais em PDF é de US $ 39,99.

docraptor.com - Oferecendo um período de avaliação gratuita de 7 dias. Os planos de assinatura premium variam de US $ 15 a US $ 2250. O preço para 10.000 documentos mensais em PDF é de ~ US $ 300,00.

pdfcrowd.com - Oferecendo 100 PDFs uma vez de graça. Os planos de assinatura premium variam de US $ 9 a US $ 89. O preço para 10.000 documentos mensais em PDF é de ~ $ 49,00.

Eu usei todos os três e este texto deve ajudar alguém a decidir sem ter que pagar por todos eles. Este texto não foi escrito para endossar nenhum produto e não tenho afiliação com nenhum dos produtos.

Frank
fonte
Obrigado pelos compartilhamentos. Eu estava investigando todas as opções o dia inteiro e me concentrei mais em libs grátis ou na compra da lib. Sua resposta me ajuda a thnik novamente. Para pequenas empresas, é a maneira econômica e a maneira mais fácil de utilizar os serviços da web. Para pdflayer.com; menos de US $ 100 / ano leva 20 ou 30 anos para quebrar mesmo, mas eu não thnik vamos deixar no mesmo mundo 20 anos depois :)
livre arbítrio
12

Se você tiver acesso à linha de comando, é possível usar o PhantomJS para criar a PDFpartir de URL(remoto ou local).

Funciona muito bem e é uma solução gratuita.

Dê uma olhada neste script de exemplo criado para esse problema exato.

Hjortlund
fonte
mas você pode ter alguns problemas com as fontes (WebFonts)
Mihai Crăiţă
11

Esta questão já é bastante antiga, mas não vi ninguém mencionar o CutyCapt, então eu vou :)

CutyCapt

O CutyCapt é um pequeno utilitário de linha de comando entre plataformas para capturar a renderização de uma página da Web pelo WebKit em uma variedade de formatos de vetor e bitmap, incluindo SVG, PDF, PS, PNG, JPEG, JPEG, TIFF, GIF e BMP

Koen.
fonte
11

Eu recomendo TCPDF ou DOMPDF, nessa ordem.

criss_ae
fonte
9

Eu não acho que uma classe php será o melhor para renderizar uma página xHtml com css.

O que acontece quando uma nova regra de css é lançada? (em breve css 3.0 ...)

A melhor maneira de renderizar uma página html é, obviamente, um navegador. O Firefox 3.0 pode 'imprimir' nativamente em formato pdf, torisugary desenvolveu uma extensão (linha de comando de impressão) para usá-lo. Aqui você encontra.

De qualquer forma, ainda existem muitos problemas no runninr firefox, assim como um conversor de pdf ...

No momento, acho que o wkhtmltopdf é o melhor (que é o usado pelo navegador safari), rápido, rápido, incrível. Sim, código-fonte também ... Dê uma olhada

Strae
fonte
O PHP é útil se você deseja produzir algum tipo de documentação oficial, como um recibo para um usuário, e você pode usar CSS para torná-lo bonito.
Luke Wenke
9

Desenvolvi uma API pública para criar arquivos PDF a partir de páginas da web. Ele tem uma classe de cliente PHP agradável que o torna super fácil de usar. Ele usa o wkhtmltopdf para renderizar o PDF na nuvem.

Não há necessidade de nada de especial no HTML. Não há necessidade de URLS absolutos nos links images / css / js. Também funciona no localhost (máquina de desenvolvimento).

Atualmente, o serviço possui pontos de extremidade em 4 regiões do Azure: leste dos EUA, oeste dos EUA, norte da UE e sudeste da Ásia.

É rápido, pois usa um protocolo proprietário para enviar o conteúdo da página da web para a API para conversão em PDF.

É confiável porque todos os pontos de extremidade têm balanceamento de carga.

Conta gratuita disponível para teste ou baixo uso. Detalhes no site:

https://rotativahq.com

Giorgio Bozio
fonte
8

Talvez você possa tentar usar o Tidy antes de entregar o arquivo ao conversor. Se um dos renderizadores engasgar com algum problema de HTML (como tag não fechada), isso poderá ajudá-lo.

PhiLho
fonte
Sim, um ponto válido, mas já pensei nisso. Não há tags incomparáveis ​​nem fora do padrão no meu HTML.
Cletus
7

A renderização fina não significa nada. Isso valida?

Todos os navegadores fazem o máximo que podem para mostrar algo na tela, não importa quão ruim seja a entrada. E é claro que eles não fazem a mesma coisa. Se você quiser a mesma renderização do FireFox, poderá usar o mecanismo de renderização. Existem geradores de pdf para isso. É uma enorme quantidade de trabalho, no entanto.

Stephan Eggermont
fonte
7

Embora já existam muitas soluções, recomendo as duas seguintes:

  1. HTM2PDF - oferece uma API para converter HTML em PDF e também possui um PHP SDK, o que facilita a implementação em PHP; Oferece uma variedade de locais de servidores na Europa, Ásia e EUA.
  2. PDFmyURL - oferece uma API que também oferece URL e HTML para PDF, com aproximadamente a mesma funcionalidade do HTM2PDF, mas funciona em um cenário com balanceamento de carga e já dura um pouco mais

O que há de diferente nessas duas APIs de todas as soluções mencionadas anteriormente é que - além de converter HTML para PDF com CSS e JavaScript - ele também oferece gerenciamento de direitos PDF, marcas d'água e criptografia. Portanto, é uma solução tudo-em-um para quem quer começar a correr.

Isenção de responsabilidade: trabalho para a Kaiomi, uma empresa que opera esses dois sites.

user1914292
fonte
Eu não gostaria de contar com um serviço quando estiver à venda . Dado o fato de não ter sido vendido nesse leilão, posso apenas assumir que ele será vendido em um futuro próximo?
Robin van Baalen
na verdade minha empresa adquiriu algum tempo após o leilão ....
user1914292
Nesse caso, suponho que não há com o que se preocupar.
Robin van Baalen
5

A conversão de HTML para PDF realmente precisa ocorrer no lado do servidor usando PHP?

Acabei de encontrar o jsPDF , uma solução do lado do cliente usando HTML5 / JavaScript. O código licenciado pelo MIT também está no GitHub .

Oliver Schafeld
fonte
para mim, a biblioteca é muito limitado
YXN
5

O TCPDF funciona bem, sem dependências, é gratuito e constantemente corrigido. Tem velocidade razoável se o conteúdo HTML / CSS fornecido estiver bem formatado. Eu normalmente gero de 50 a 300 kB de entrada HTML (incluindo CSS) e obtenho saída em PDF em 1-3 segundos com 10 a 15 páginas em PDF.

Eu recomendo usar a biblioteca arrumada como um bonito formatador de HTML antes de enviar qualquer coisa para o TCPDF.

lubosdz
fonte
4

Eu tentei várias bibliotecas diferentes para PHP. Todos os listados que eu tentei. Na minha opinião, a biblioteca TCPDF é o melhor comprometimento de desempenho / usabilidade. É muito simples de instalar e usar, também com bom desempenho em pequenas aplicações médias. Se você precisar de alto desempenho e documento PDF muito grande, use o módulo Zend_PDF , mas prepare-se para codificar com firmeza !

trullallero
fonte
O Zend PDF não pode ser convertido de HTML
Martin Zvarík
3

API da Web

Se houver pessoas que sempre pesquisam esse tipo de coisa, existe um site gratuito que permite converter o código html e as páginas em pdf. Há também uma API (muito pequena) que permite obter arquivos PDF a partir do URL.

Veja aqui

Superdrac
fonte
2

não PHP , mas uma biblioteca Java , que faz o seguinte:

O Flying Saucer usa XML ou XHTML e aplica folhas de estilo compatíveis com CSS 2.1, para renderizar em PDF

É utilizável a partir do PHP via system()ou uma chamada semelhante. Embora exija XML bem-formação do input.

Ivan Kurmanov
fonte