Gerando documentos PDF com a classe FPDF no PHP


Autor/fonte: José Vanol Jr.
E-mail/Url: http://www.vivaolinux.com.br/artigo/Gerando-documentos-PDF-com-a-class...
Tags: [ fpdf ] [ pdf ]



Digg del.icio.us

A cada dia que passa a linguagem PHP (Hipertext Preprocessor) ganha mais espaço no que diz respeito a sistemas web, tudo isso graças à "quantidade, diversidade e qualidade de seus recursos, assim como a facilidade de utilização" (NIEDERAUER, 2005, p. 15) de suas funcionalidades.

Dentre tais funcionalidades e recursos está a capacidade de geração de documentos PDF (Portable Document Format), fato que simplifica a geração de relatórios, boletos eletrônicos, formulários e documentos em geral que necessitam de precisão na impressão do cliente. Há vários modos de gerar documentos PDF no PHP, mas no entanto, o modo escolhido foi através da classe FPDF, foco deste artigo.

Passos para a geração dum documento PDF com a classe FPDF no PHP:

1. Dispor de um servidor previamente configurado (Apache + PHP)

Este artigo não visa ensinar a configuração de um servidor. Para mais detalhes acesse o artigo:

Configurando um ambiente LAMP (PIMENTA FORTE, 2010, p. 1)

2. Obter a classe FPDF

A classe FPDF foi desenvolvida por Olivier Plathey.



3. Preparando o terreno

Uma vez realizado o download da FPDF (fpdf16.tgz) e descompactados os arquivos, vamos ao que interessa.

Dentro do seu diretório "www" crie o diretório "PDF":

# mkdir /var/www/PDF

Dentro do diretório "PDF" crie o os diretório "lib":

# mkdir /var/www/PDF/lib

Mova o arquivo "fpdf.php" para o diretório "lib":

# mv [diretório de origem]/fpdf.php /var/www/PDF/lib/

Mova o diretório "font" para o diretório "PDF":

# mv [diretório de origem]/font/ /var/www/PDF/

Crie o arquivo "meuPrimerioGeradorPDF.php" no diretório "PDF":

# cd /var/www/PDF
# vi meuPrimerioGeradorPDF.php

4. Editando o arquivo "meuPrimeiroGeradorPDF.php":

Abra o vi ou o seu editor preferido e mãos a obra!

<?php
/******************************************************************************/
// Arquivo: meuPrimeiroGeradorPDF.php
// Este arquivo é parte integrante do artigo:
// Gerando Documentos PDF com a Classe FPDF no PHP
// Autor: José Vanol Jr. Data: 12/07/2010
/******************************************************************************/

//Incluindo o arquivo onde está a Classe FPDF
require_once("lib/fpdf.php");

//Definindo o diretório das fontes
define("FPDF_FONTPATH","font/");

//Iniciando o construtor FPDF
$pdf = new FPDF();

//Chamando o método para adicionar página
$pdf->AddPage();

//Posicionando o cursor
// "X" em milímetros de cima para baixo
// "Y" em milímetros da esquerda para a direita
$pdf->SetXY(25, 25); // SetXY($x, $y);

//Adicionando uma imagem (Disponível em: http://img.vivaolinux.com.br/imagens/layout/linux-logo-002.jpg)
$pdf->Image("image/linux-logo-002.jpg"); //Image($arquivo);

// Definindo nova posição do cursor
$pdf->SetXY(70, 25);

//Definindo a fonte
$pdf->SetFont("Helvetica", "B", 12); //SetFont($fonte, $estilo, $tamanho);

//Inserindo célula de texto
$pdf->Cell(0, 5, "Gerando Documentos PDF com a Classe FPDF no PHP");

// Definindo nova posição do cursor
$pdf->SetXY(115, 33);

//Inserindo célula de texto
$pdf->Cell(0, 5, "== Artigo 01 =="); //Cell($h, $w, $txt);

//Definindo novamente a fonte
$pdf->SetFont("Helvetica", "", 11);

// Definindo nova posição do cursor
$pdf->SetXY(120, 38);

//Inserindo célula de texto
$pdf->Cell(0, 5, "José Vanol Jr.");

//Inserindo uma linha divisória
$pdf->Line(25, 45, 185, 45);

// Definindo nova posição do cursor
$pdf->SetXY(25, 50);

//Texto
$txt="Introdução ..."; // Todo o texto a ser gravado com quebra de linha automática

//Inserindo o texto com quebra de linha automática
$pdf->MultiCell(160,5,$txt);

// Gerando um rodapé simples
$pdf->Line(25, 270, 185, 270); // insere linha divisória
$pdf->SetXY(25,270); //posição para o texto
$data=date("d/m/Y H:i:s"); //pegando data e hora da criação do PDF
$conteudo=$data." Pág. ".$pdf->PageNo(); //pegando o número da página
$texto="www.vivaolinux.com.br";
$pdf->Cell(80,5,$texto,0,0,"L"); //Insere célula de texto alinhado à esquerda
$pdf->Cell(80,5,$conteudo,0,0,"R"); //Insere célula de texto alinhado à direita
//Gerando o arquivo PDF
$pdf->Output("arquivo.pdf","D");
//Fim do arquivo
?>

5. Visualizando o resultado

Abra o seu navegador e acesse:

http://[Servidor]/PDF/meuPrimeiroGeradorPDF.php

Eis, pois, o "arquivo.pdf". Que maravilha!

Conclusão

Como se pode observar, a utilização da classe FPDF é bastante simples e com um pouco de treino é possível fazer muita coisa. Inclusive é possível gerar relatórios advindos de consultas a banco de dados ou do preenchimento de formulários, gerar boletos com código de barras etc. Mas isso é assunto para outros artigos.

Referências

NIEDERAUER, Juliano. PHP para quem conhece PHP [Recursos avançados para a criação de websites dinâmicos]. São Paulo: Novatec, 2005.

PIMENTA FORTE, Phillip Eduardo. Configurado um ambiente LAMP. Viva o Linux, 2010. Disponível em: http://www.vivaolinux.com.br/dica/Configurando-um-ambiente-LAMP-%28acronimo-para-Linux-Apache-MySQL-e-PHP%29-no-Ubuntu-10.04. Acesso em: 08/07/2010 às 08:13h.

PLATHEY, Oliver. FPDF Library. FPDF, 2008. Disponível em: http://www.fpdf.org. Acesso em: 08/07/2010 às 08:47h.

Arquivos utilizados neste artigo: PDF.tar




Enviado por xKuRt em 20/07/2010 às 11:50


Itens relacionados

Transformando arquivos DOC, ODT ou RTF em PDF
Converter arquivo PDF para texto usando PHP
Converter arquivos ODS ou XLS para PDF
Problemas com sessão na hora de gerar um PDF com o FPDF?
Criando e gerando PDF no PHP com a biblioteca PDML
Preencher um arquivo RTF e gerar o PDF
Gerando PDF com PHP com o FPDF

Avaliação

Avaliação desta publicação: 10.00; Total de avaliações: 1


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

AvatarEnviado por joaocarlostr em 14/04/2011 às 15:59

Desenvolvi um padrão de cordenadas para ajudar no elaboração de relatórios, posicionando com precisão os elementos no relatório.

Baixe o arquivo em:
http://www.4shared.com/dir/NBI43mYm/_online.html

O arquivo contém instruções de uso.

Qquer dúvida estou a disposição:
joaocarlostr@gmail.com

--
João Carlos TR


Envio de comentário:




  

Domingo, 31 de Agosto de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Laboratórios De Tecnologias Cisco Em Infraestrutura De Redes


Capa do livro
Use a Cabeça! JavaScript


Capa do livro
Design Para a Internet





Hostnet

IMD