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

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

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, 20 de Abril de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Windows 7 Sem Limites


Capa do livro
VBA e Macros para Microsoft Office Excel 2007


Capa do livro
jQuery Mobile - Desenvolva Aplicações Web para Dispositivos Móveis com HTML5, CSS3, AJAX, jQuery e JQUERY UI





Hostnet

IMD