Como gerar arquivos PDF com PHP

Um dos primeiros desafios que encontramos quando estamos construindo nossas primeiras aplicações web é o de poder transformar os dados que estamos manipulando em relatórios para que o nosso usuário use os mesmos como documento para o seu negócio, um exemplo simples disso é poder transformar um determinado conjunto de informações que estão no nosso sistema em um arquivo PDF.

Para realizar esse tipo tarefa com PHP existe uma biblioteca chamada dompdf, com ela podemos transformar o nosso HTML em PDF, parece mentira, mas é isso mesmo, com o dompdf essa tarefa se torna muito simples, então se antes de ler esse artigo você achava que gerar um PDF era um bicho de sete cabeças, não se preocupe, porque hoje toda suas dúvidas serão sanadas.

Aprendendo a utilizar a lib dompdf

Então vamos lá, antes de mais nada você precisa ter o composer instalado na sua máquina, caso não o tenha acesse esse link, nele você verá como instalá-lo independente de qual seja o seu sistema operacional.

Agora que já temos o composer instalado vamos criar uma pasta chamada dompdf e dentro dela vamos abrir o nosso terminal realizar o comando composer require dompdf/dompdf, esse comando irá carregar o dompdf em nosso projeto, após isso vamos criar um arquivo chamado create.php e nele vamos importar o autoload do composer para que possamos fazer uso das classes da biblioteca.

Agora que já incluímos o autoload podemos instanciar a classe Dompdf.

Com a classe já instanciada, vamos criar um arquivo html chamado tabela.html com o seguinte conteúdo.

Vai ser a partir desse arquivo que vamos gerar nosso PDF, então nosso próximo passo será ler esse HTML.

A função file_get_contents() irá ler o arquivo correspondente e irá transformá-lo em uma string e esse valor será guardado na variável $tabela, com esse conteúdo já armazenado em nossa variável só nos resta usar a biblioteca dompdf para transformar todas essas informações em um arquivo, para isso iremos utilizar o método loadhtml() passando como parâmetro a nossa variável $tabela.

Após isso iremos dizer para o dompdf qual deve ser o tamanho e a orientação do arquivo que queremos gerar.

Após isso podemos renderizar nosso PDF e o disponibilizá-lo para o navegador usando o método stream.

Agora para visualizar se tudo deu certo basta subirmos nosso servidor com o comando php -S localhost:8000 e acessarmos em nosso navegador a url correspondente ao nosso arquivo http://localhost:8000/create.php, feito isso o navegador irá apresentar o PDF ou em alguns casos irá fazer o download do arquivo, mas caso você queria salvar o PDF ao invés de gerá-lo, é simples, basta usarmos a função file_put_contents onde o primeiro parâmetro e o nome do arquivo que iremos criar e o segundo é o conteúdo do arquivo, que no caso será o retorno do método output do dompdf.

Essa linha de código irá criar um arquivo doc.pdf no diretório raiz do nosso projeto, muito simples, não é verdade ?

Caso alguém tenha interesse em saber mais sobre essa biblioteca esse é o repositório dela no github e todo código desse post você encontra aqui.