Como converter HTML para PDF em PHP
PDF (Portable Document Format) é um formato de arquivo que inclui formatação de texto e imagens em um layout fixo. O PDF é independente do software aplicativo, hardware e sistema operacional. Isso significa que você pode usar o mesmo PDF em qualquer sistema operacional.
Enquanto trabalhamos em aplicativos PHP, às vezes queremos criar PDF a partir de HTML. Pode ser uma fatura, guia de instalação, currículo, etc. Para torná-lo dinâmico, precisamos gerar PDF em HTML em tempo real.
Neste artigo, mostro como converter HTML em PDF em PHP usando a biblioteca Dompdf.
Dompdf é uma biblioteca de conversão de HTML para PDF de código aberto. Usando Dompdf, você pode criar facilmente PDF a partir de HTML bruto ou usando um arquivo HTML.
Começando
Para começar, primeiro você precisa instalar a biblioteca Dompdf em seu aplicativo. Eu recomendo usar o Composer para a instalação da biblioteca.
Abra o terminal no diretório raiz do seu projeto e execute o comando:
composer require dompdf/dompdf
Depois de instalar uma biblioteca, você pode incluir o ambiente Dompdf em seu projeto usando o código abaixo.
<?php
require_once "vendor/autoload.php";
use DompdfDompdf;
Converter HTML para PDF em PHP
O código necessário para gerar PDF é simples e direto. Como exemplo, digamos que você tenha um HTML bruto que deve ser convertido em PDF. Crie um index.php
arquivo e adicione o código a seguir.
<?php
require_once "vendor/autoload.php";
use DompdfDompdf;
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('<h1>hello world</h1>');
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Aqui, estamos passando um HTML bruto para o método loadHtml()
. Quando executamos este arquivo, ele irá gerar PDF e renderizar em um navegador.
Também podemos dar um nome ao PDF que será baixado.
$dompdf->stream('test.pdf');
Você aprendeu como gerar PDF a partir de HTML bruto. Agora, vamos ver como criar PDF usando arquivo HTML.
Existem 2 maneiras de fazer isso. Na primeira forma, obtemos o conteúdo do arquivo HTML e o passamos para o loadHtml()
método. Outra forma é usar a loadHtmlFile()
função e passar o caminho do arquivo HTML para ela.
Vamos ver os dois lados, um por um.
Primeiro Método
$html = file_get_contents('test.html');
$dompdf->loadHtml($html);
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Segundo método
Neste método, você deve primeiro definir o ‘chroot’ do diretório onde seu arquivo HTML está localizado. Se o seu arquivo HTML estiver no diretório raiz, use o getcwd()
método diretamente. Você deve ajustar o caminho de acordo com sua necessidade.
$dompdf->set_option('chroot', getcwd()); //assuming HTML file is in the root folder
$dompdf->loadHtmlFile('test.html');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Salve o arquivo PDF gerado
Todos os códigos acima que escrevemos renderizarão o PDF gerado em um navegador. Se alguém quiser salvar o PDF gerado em um disco, use o código da seguinte maneira:
$dompdf->set_option('chroot', getcwd()); //assuming HTML file is in the root folder
$dompdf->loadHtmlFile('test.html');
// Render the HTML as PDF
$dompdf->render();
//Save to disk
$output = $dompdf->output();
file_put_contents("test.pdf", $output);
É tudo sobre a conversão de HTML em PDF usando a biblioteca Dompdf. Eu gostaria de ouvir seus pensamentos e sugestões na seção de comentários abaixo.
Artigos relacionados
- Usando o Google reCAPTCHA em formulários de seu site com PHP
- Carregar arquivos para Amazon S3 usando AWS PHP SDK
- Carregar imagem usando a biblioteca à prova de balas em PHP