You are on page 1of 18

Gerando documentos PDF com PHP

Jamiel Spezia - jamiel@solis.coop.br www.solis.coop.br/~jamiel

V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis.coop.br>

1

O que vamos ver? Este curso tem o objetivo de mostrar a classe FPDF que gerar documentos PDF na linguagem PHP. ● ● ● ● ● ● ● ● PHP FPDF Gerar um documento Formatar um documento Formatar e Posicionar um texto Escrever Funções Cabeçalho e Rodapé V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis.br> 2 .coop. A metodologia que será utilizada é através especificações sobre as funções e exemplos práticos.

php shell> php roda.: http://www. também pode ser rodado como script no shell. V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis. PHP pode ser embutido em aplicações WEB. Ex.org/roda.php. ● ● ● Site: http://www.php.PHP PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor") é uma linguagem de script Open Source de uso geral.coop.br> 3 . muito utilizada e especialmente guarnecida para o desenvolvimento de aplicações Web embútivel dentro do HTML.rodaphp.net.

● Quebra de linha automática e justificação de texto. ● ● V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis. Site: http://www. ● Quebra de pagina automática.org. ● Links.fpdf.br> 4 . ● Gerenciamento de cabeçalho e roda pé.FPDF ● FPDF é uma classe para gerar documentos PDF em PHP. ● Suporta imagens (JPEG e PNG). Principais características: ● Escolha da unidade de medida.coop. ● Cores.

+ Utilização ● Para utilizar a FPDF basta: ● ● ● Baixar o fonte do site. Incluir a classe no código PHP indicando o caminho em que se encontra a classe.php'). Extrair a FDPF em um diretório de sua preferência. ?> V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis. ● Exemplo: <?php include ('fpdf/fpdf.coop.br> 5 .

S). Legal). $pdf->Output('exemplo2. cm – centímetros. D.br> 6 . string destino]]) ● Nome do arquivo.php'). L – paisagem). ● Define para onde o arquivo vai ser enviado (I. ● Exemplo: <?php include ('fpdf/fpdf.coop. F. Letter. A4. $pdf = new FPDF('P'. ● Unidade de medida (pt – pontos. ● Envia o documento: ● string Output([string nome [.pdf'). string unidade [. ● Formato da página (A3. in – polegadas).+ Gerando um documento ● Construtor: ● FPDF([string orientação [.'cm'.'A4'). mm – milímetros. mixed formato]]]) ● Orientação da página (P – retrato. ?> V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis. A5.

?> V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis. $pdf->SetAuthor('Jamiel Spezia'). SetAuthor(string autor) ● Define o autor do documento. float direita]) ● Define a margem esquerda. ● Por padrão as margens são definidas em 1 cm. ● SetLeftMargin(). margem superior e margem direta. 2).'cm'.php').br> 7 . ● Para definir a margem inferior usa-se SetAutoPageBreak().pdf'). $pdf = new FPDF('P'.coop. SetTopMargin(). float superior [. $pdf->SetTitle('Documento gerado com FPDF'). 3. $pdf->Output('exemplo3. ● Exemplo: <?php include ('fpdf/fpdf. $pdf->SetMargins(3.+ Formatando o documento ● Margens: ● SetMargins(float esquerda. SetRightMargin().'A4'). ● Titulo e Autor: ● ● SetTitle(string titulo) ● Define o título do documeto.

float tamanho]]) ● Define a fonte a ser utilizada. U .+ Texto e posições ● Formatando texto: ● SetFont(string fonte [. B – negrito. ● SetFontSize(). I – itálico. string estilo [. SetY().coop. ● SetX(). float y) ● Define as coordenadas x e y.sublinhado). V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis. ● Definindo posição: ● SetXY(float x. ● Define o tamanho da fonte.br> 8 . ● Define o estilo (texto vazio – normal.

10). $pdf->Ln(). ● Exemplo: <?php include ('fpdf/fpdf. 3).').pdf'). 10). $pdf->Output('exemplo4. 'BIU'. $pdf->SetFont('Arial'. ?> V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis.'cm'. string txt [.5.'Segunda linha. $pdf->SetFont('Arial'.br> 9 . Texto ● Quebra de linha: ● Ln([float h]) ● Define o espaçamento. ''.+ ● Adicionando uma nova página: ● Escrevendo AddPage([string orientação]) ● Orientação da página (P – retrato. $pdf = new FPDF('P'. mixed link]) Define o espaçamento).5. $pdf->Write(0. $pdf->SetXY(3.'). L – paisagem).'Texto a ser inserido ao documento.coop.php'). $pdf->Write(0. $pdf->AddPage().'A4'). ● Escrevendo: ● ● ● Write(float h.

● Altura da célula. ● Texto. ● Formata como um link. int preenchimento]]]) Mesmo que o o anterior. V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis. T-Aci. mixed borda [. string alinhamento [. float h. Permite o alinhamento justificado (J). R-Dir. ● Borda (0 – sem borda. ● Alinha o texto (L – esquerda. mas imprime um texto com quebras de linha. string txt [. 2abaixo). string txt [.coop. Gera uma célula abaixo da outra.+ Escrevendo (2) ● Imprime uma célula: ● Cell(float w [. 1 – preenchido). C – centralizado. mixed link]]]]]]]) ● Largura da célula. int ln [.br> 10 . string alinhamento [. float h [. 1–Início próxima linha. ● Indica quebra de linha (0–Direita. B-Aba)). ● Imprime múltiplas células: ● ● ● ● MultiCell(float w. R – direita). mixed borda [. 1 – com borda (L-Esq. ● Preenche o fundo (0 – Transparente. int preenchimento [.

tamanho da fonte 10: ● Cell(float w [. mixed link]]]]]]]) ● MultiCell(float w. int preenchimento [. string alinhamento [. string alinhamento [. float h. int preenchimento]]]) txt [. mixed borda [.coop.br> 11 . string V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis. int ln [. tamanho da fonte 16 e em negrito) e um texto com múltiplas linha (justificado. mixed borda [. float h [. string txt [.+ Exercício 1 ● Gerar um documento PDF com um título (centralizado.

tamanho da fonte 16 e em negrito) e um texto com múltiplas linha (justificado. $pdf->AddPage().+ Resolução 1 ● Gerar um documento PDF com um título (centralizado. $pdf->MultiCell(0. transferência de dinheiro entre contas. ou previsão de gastos). 0. $texto = " CONAL é um programa para controle financeiro pessoal. 1.php').$texto.'cm'. $pdf->Output('exeecicio1. 'J'). tamanho da fonte 10: <?php include ('fpdf/fpdf. 'C'). controle de crediários.solis.coop.'CONAL .br". possibilita troca de temas tanto de ícones como de janelas.0. $pdf->SetFont('Arial'.5. ''. $pdf->Cell(0. $pdf = new FPDF('P'.3 tanto para linux como para windows está disponível para download em http://conal. ?> V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis. A versão 0. 2. de fácil utilização e visualização agradável.'A4').br> 12 . com ele você terá um melhor controle das suas despesas e receitas através de centros de custo.coop.Controle Financeiro Pessoal'. lançamentos pagos. Na versão 0. 0. Um programa gráfico desenvolvido em php-gtk e sqlite. pode ser feita autenticação via usuário e senha.3 você tem o controle de seus lançamentos pendentes (compra a prazo.pdf'). 10). 'B'. $pdf->SetFont('Arial'. previsão de gastos e visualização do saldo real e previsto de suas contas. 16).

Line(float x1. float h [. int g. float y1. int g. float w. ● ● AliasNbPages([string apelido]) ● Define um apelido para o número total de páginas (padrão {nb}). ● ● ● V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis. float x2. F – preenche). float y. float y2) ● Desenha uma linha.coop. int b]) ser usada no texto.br> 13 . int b]) ser usada em todas as operações de desenho. r [. ● Estilo (D – desenha a borda. int PageNo() ● Retorna o número da página corrente. float GetStringWidth(string s) ● Retorna o tamanho da string s. Rect(float x.+ Outras funções ● ● SetDrawColor(int ● Define a cor a SetTextColor(int ● Define a cor a r [. string estilo]) ● Desenha um retangulo.

coop.php'). class MeuPDF extends FPDF { function Header() { } function Footer() { } } ?> ● V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis.br> 14 . Exemplo: <?php include('fpdf/fpdf.+ Cabeçalho e Rodapé ● Para adicionar um cabeçalho e rodapé devemos estender a classe FPDF e reescrever os métodos Header() e Footer().

um roda pé com informações sobre o número de páginas (centralizada. class MeuPDF extends FPDF { function Header() { } function Footer() { } } ?> AliasNbPages([string apelido]) int PageNo() V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis.+ Exercício 2 ● Gerar um documento PDF com um cabeçalho (centralizado.coop. tamanho da fonte 16 e em negrito). tamanho da fonte 10. em itálico e a 15 mm antes do fim da folha) <?php include('fpdf/fpdf.br> 15 .php').

$this->Ln(20). ?> V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis.12). class MeuPDF extends FPDF { function Header() { $this->SetFont('Arial'. em itálico e a 15 mm antes do fim da folha) <?php include('fpdf/fpdf.10.'C').0.coop.'Página '. $this->SetFont('Arial'.php').1.$i++) $pdf->Cell(0. $this->Cell(0.0.'Imprimindo linha '.0. $this->Cell(0. um roda pé com informações sobre o número de páginas (centralizada.1).'B'.+ Resolução 2 ● Gerar um documento PDF com um cabeçalho (centralizado.$this->PageNo(). $pdf->AddPage().'I'.$i.0.pdf'). $pdf->SetFont('Arial'. $pdf->Output('exercicio2. tamanho da fonte 16 e em negrito). 'Cabeçalho da empresa XXXX'.10).10.16). tamanho da fonte 10. } function Footer() { $this->SetY(-15). $pdf->AliasNbPages(). } } $pdf=new MeuPDF().''.$i<=40. 10. for($i=1.'/{nb}'.br> 16 .'C').

solis.br> 17 .php.coop.solis.coop.coop.+ Referências ● PHP ● http://www.br http://www.br/~jamiel ● SOLIS ● ● Home Page ● V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis.net/ FPDF ● ● http://www.fpdf.net/ http://www.

copiar. você deve deixar explícito para os outros. os termos da licença deste trabalho. ● Não-Comercial: Você não pode utilizar este trabalho para propósitos comerciais. Você pode distribuir. ● Estas condições podem ser alteradas se você obter permissão do autor.br> 18 . V Seminário de desenvolvimento em Software Livre Jamiel Spezia <jamiel@solis. ● ● O uso justo e outros direitos não são afetados pelas condições acima.0. ou construir algo sobre este trabalho.coop. exibir e realizar outros trabalhos seguindo estas condições: ● Atribuição: Você deve dar os créditos ao autor original.+ Creative Commons ● Estes slides estão disponíveis sob a licença não comercial da creative commons 1. ● Para todo reuso ou distribuição. transformar. ● Não derivar trabalhos: Você não pode alterar.