Gerando arquivos PDFs em PHP

Eis aqui uma necessidade eminente e cotidiana para os desenvolvedores PHP: Como gerar um arquivo PDF a partir da sua aplicação PHP? Na prática a solução é muito mais simples do que pode supor nossa vã filosofia! 🙂

Sem dúvida alguma, uma das maneiras mais simples, práticas, funcionais e objetivas de se gerar arquivos PDF através do PHP é por intermédio da classe FPDF. No momento que escrevo esta pequena dica, a FPDF encontra-se na sua versão 1.53 e, pode ser utilizada em basicamente todos os sabores de sistemas operacionais que o PHP consegue operar. Outro aspecto importante é que a classe é FREE, ou seja, você não precisa pagar nada a ninguém para utilizá-la em seus códigos-fonte. Para saber mais, baixe e estude o manual do FPDF, que graças ao Domingos Paraíso possui versão em língua portuguesa! 😉

No Linux, basta baixar a FPDF e copiar (depois descompactando obviamente) no diretório “/usr/share/php”, “/usr/share/php5” ou outro path que eventualmente você tenha declarado/mudado no arquivo “php.ini”, em relação ao diretório das bibliotecas/classes do PHP. Não é necessário instalar, basta descompactar/destarar. Note que o procedimento também vale para Windows, basta ler o seu “php.ini” no Windows e ver para onde o path aponta:

No Linux:

cd /usr/share/php
tar -xzvf fpdf153.tgz

Pronto, o nosso módulo PHP já está habilitado a gerar e interpretar arquivos no formato PDF. Agora é chegada a hora de entendermos, num exemplo simples, como gerar propriamente dito o arquivo PDF. Abaixo um código-fonte exemplo criado pelo Cléver Anjos:

require_once(“fpdf153/fpdf.php”);
$pdf = new FPDF();
$pdf->Open();
$pdf->AddPage();
$pdf->SetXY(30, 50);
$pdf->SetFont(‘Helvetica’, ‘B’, 16);
$pdf->Cell(0, 6, ‘HELLO WORLD!’);
$pdf->Output();

O código acima irá gerar um arquivo em formato PDF contendo a expressão: “HELLO WORLD”, pedindo ao usuário se ele quer abrir o arquivo de forma temporária (pelo webbrowser + leitor PDF) ou salvá-lo em disco. Este é um exemplo bastante simples, mas que pode ser adaptado às suas necessidades facilmente (sabia mais em: http://www.phpbrasil.com/articles/article.php/id/231). Outra observação importante é que o código-fonte acima usa a metodologia de programação orientada a objetos em PHP (haja vista que a FPDF é uma classe e não uma biblioteca). No Windows, o que muda efetivamente é clásula “require_once(“fpdf153/fpdf.php”);”, que obviamente, terá um path diferente a ser observado durante a inclusão no seu código-fonte.