HowTo: Como converter HTML em PDF com PHP

Provavelmente você já deva ter ouvido falar na biblioteca FPDF, que serve pra converter resultados em PHP diretamente em PDF. Porém o seu uso não é muito simples, pois é necessário efetuar uma configuração minimalista na página a ser montada.

A idéia deste HowTo é apresentar uma maneira mais simples para isso, ou seja, que tal você criar um HTML, por exemplo o relatório que você quer que seja gerado, e o PHP automaticamente gerar um PDF igual ao HTML? Isso é fácil…

dompdf é uma biblioteca em PHP que permite converter HTML para PDF. Interpreta tags html, incluíndo CSS.

Características
dompdf requer para seu funcionamento PHP 5, e entre as qualidades mais destacadas temos:

  • Suporte a propriedades, seletores CSS 2.1.
  • Suporte a atributos HTML 4.0
  • Suporte para de estilos externos (local e/ou remoto)
  • Suporte para tabelas, incluindo linhas e colunas.
  • Suporte ao carregamento de imagens GIF, JPG e PNG.
  • Suporte para links e âncoras.
  • Suporte a comandos PHP.
  • Não é necessário instalar nenhuma biblioteca adicional.

Utilizando dompdf
Utilizar dompdf é muito simples, primeiramente deve-se incluir o arquivo dompdf_config.inc.php e então criar uma instância da classe DOMPDF.

  1. require_once(“dompdf_config.inc.php”);

  2. $html =

  3. ‘<html><body>’.

  4. ‘<p>Put your html here, or generate it with your favourite ‘.

  5. ‘templating system.</p>’.

  6. ‘</body></html>’;

  7. $dompdf = new DOMPDF();

  8. $dompdf->load_html($html);

  9. $dompdf->render();

  10. $dompdf->stream(“sample.pdf”);

Como você pode observar é muito simples de utilizar e pode-se obter excelentes resultados. Se deseja verificar uma demostração, pode-se utilizar o dompdf Demo o qual mostra um formulário que podemos incluir nossas tags html e gerar automaticamente o arquivo pdf.

Aproveite e confira os melhores preços em Câmeras Digitais – Jacotei

17 thoughts to “HowTo: Como converter HTML em PDF com PHP”

  1. Olá, fiquei muito interessado na classe dompdf, mas tive problemas no windows.

    Baixei toda classe, quando executo dá um problema abaixo:

    C:\Arquivos de programas\VertrigoServ\www\dompdf-0.5.1\dompdf-0.5.1\include\style.cls.php(732): Style->get_font_family() #1

    Você sabe me dizer o que é ?

    Estou usando o windows

  2. Como posso resolver este problema??

    Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 1572864 bytes) in C:\Lelo\AppServ\www\bolsa2008\docs\dompdf\lib\class.pdf.php(2219) : eval()’d code on line 5914

    Parece que preciso mais memória, onde configuro isto, ou será algum erro no script!?
    agradeço

  3. vc esta usando somente 8MB, que é o padrao do PHP.
    Edite o arquivo php.ini e altere o valor memory_limit para um valor mais alto.

  4. Eu quero baixar esse programa. Mais ainda sou iniciante. Alguém pode me ajudar?
    É que eu naum entendi como eu faço pra criar uma instância dessa classe.
    Um abraço
    Agradeço!

  5. Seguinte da próxima vez que for postar algo na Internet, põe algo que funciona e use os caracteres corrtes para includes, garanto que vai ter mais elogios e meus usuários para responder perguntas, uma vez que que o código esteja funcionando.

  6. Não sei qual problema nosso amigo tão bem educado ai teve, mas o exemplo foi retirado do site oficial do DomPdf e funciona perfeitamente.
    Usei o VertrigoServ por bastante tempo, e não tive problemas. deixei de usar apenas por que migrei para linux, mais rápido e estável, mesmo como servidor de testes.

  7. Olá, estou usando a lib e estou tendo um problema que é, quando o texto é maior que uma página, a biblioteca gera um erro e não cria o documento. Alguém passou por esse problema?Obrigado

  8. Ola
    tive problemas pra gerar o pdf, segue erro abaixo;

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/renz/www/renz/adm2/pdf2.php on line 36

    qualquer coisa me mande um email que mando o arquivo em anexo para que possamos resolver juntos.

    Muito obrigado

  9. Como faço para ao invés de abrir o PDF colocá-lo em uma pasta temporária para que eu possa anexar em um email esse pdf gerado?

  10. Se correr o script num ficheiro a aparte funciona.
    Mas dentro dum site em joomla, não consigo criar a instância da classe.
    O código não passa da linha: $dompdf = new DOMPDF();

    Porque será? Se alguém poder ajudar.

  11. Estava testando e ocorreu um erro, percebi que quando há imagens com uma largura que excede acho que 600px ele dá um pau ae doido. Quando se utiliza imagens de largura de 500px funciona de boa.

Leave a Reply

Your email address will not be published. Required fields are marked *