+10

Criando relatórios no formato PDF

criado por Cléver Anjos em 06/07/2002 1:58pm
Nessa página vamos fazer alguns testes com o FPDF, aconselho você a copiar o script abaixo para o seu servidor e estudar cada um dos exemplos:

<?php
require_once("fpdf.php");
$pdf=new FPDF();
$pdf->Open();
$pdf->AddPage();
$pdf->SetXY(10, 20);
$pdf->SetFont('Helvetica', 'B', 14);
$pdf->Cell(65, 5, 'Testando a biblioteca FPDF');
$pdf->SetFont('Helvetica', 'I', 14);
$pdf->Cell(0, 5, '(http://www.fpdf.org)');
$pdf->ln(); // pula 1 linha
$pdf->SetLineWidth(0.5);
$pdf->Line(10, 27, 200, 27);
$pdf->ln();
$pdf->SetFont('Courier', '', 10);
$pdf->SetLineWidth(0.2);
$pdf->MultiCell(0, 5, "Com essa biblioteca voce pode criar arquivos .PDF com facilidade permitindo dar um acabamento melhor aos seus trabalhos\nAssim você poderá ter um controle muito bom sobre a saída em texto dos seus programas.\nComo por exemplo colocar uma borda em torno dos seus textos.\nOu traçar uma linha como a que está logo acima.", 1, 1);
$pdf->ln(2);
$pdf->SetFont('Helvetica', '', 10);
$pdf->Cell(0, 5, 'Poderá variar fontes:', 0, 1);
$pdf->SetFont('Courier', '', 10);
$pdf->Cell(0, 5, 'Texto em Courier 10 padrão:', 0, 1);
$pdf->SetFont('Courier', 'B', 12);
$pdf->Cell(0, 5, 'Texto em Courier 12 negritado:', 0, 1);
$pdf->SetFont('Courier', 'BI', 14);
$pdf->Cell(0, 5, 'Texto em Courier 14 negritado e itálico:', 0, 1);
$pdf->ln(2);
$pdf->SetFont('Helvetica', '', 10);
$pdf->Cell(0, 5, 'Texto em Helvetica 10 padrão:', 0, 1);
$pdf->SetFont('Helvetica', 'B', 12);
$pdf->Cell(0, 5, 'Texto em Helvetica 12 negritado:', 0, 1);
$pdf->SetFont('Helvetica', 'BI', 14);
$pdf->Cell(0, 5, 'Texto em Helvetica 14 negritado e itálico:', 0, 1);
$pdf->ln();
$pdf->SetFont('Helvetica', '', 10);
$pdf->Cell(0, 5, 'Poderá trabalhar com alinhamentos:', 0, 1);
$pdf->Cell(0, 5, 'Alinhamento centralizado', 1, 1, 'C');
$pdf->Cell(0, 5, 'Alinhamento à esquerda', 1, 1, 'L');
$pdf->Cell(0, 5, 'Alinhamento à direita', 1, 1, 'R');
$pdf->MultiCell(60, 5, 'Ou até mesmo poderá trabalhar com alinhamento justificado.', 1, 1, 'J');
$pdf->ln();
$pdf->Cell(70, 5, "Trabalhando com cores em RGB", 0, 0);
$pdf->SetTextColor(0, 0, 256);
$pdf->Cell(30, 5, "Azul", 0, 0);
$pdf->SetTextColor(0, 256, 0);
$pdf->Cell(30, 5, "Verde", 0, 0);
$pdf->SetTextColor(256, 0, 0);
$pdf->Cell(30, 5, "Vermelho", 0, 0);
$pdf->SetTextColor(256, 256, 0);
$pdf->Cell(30, 5, "Amarelo", 0, 1);
$pdf->ln(3);
$pdf->SetFillColor(200);
$pdf->SetTextColor(30, 30, 30);
$pdf->MultiCell(0, 10, "E para terminar esse capítulo colocamos esse texto em sombreado para você poder avaliar alguns dos recursos do FPDF.No próximo capítulo explicarei como expandir a classe para gerar relatórios .", 1, 'L', 1, 1);
$pdf->Output();
?>

Comentários:

Mostrando 1 - 10 de 93 comentários
Alexandre disse:
Ola, parabens pelo post. Mas como faço para quando gerar o relatório a pessoa possa fazer o download? outra coisa quando tento colocar uma imagem da o seguinte erro:
FPDF error: Alpha channel not supported: C:/xampp/htdocs/imaster/110/linha.png

Help-me please.

Alexandre P. Menezes
15/03/2010 12:14pm (~14 anos atrás)

José Walter disse:
Como crio um relatório dinâmico... onde o arquivo que gera o FPDF receba uma variável de um form pelo método POST ou GET e faz a consulta no Banco de dados...? Atualmente eu consigo gerar um relatório com o FPDF, mas a condição da consulta é um valor fixo, predeterminado... EX.: a consulta é SELECT * FROM ALUNOS WHERE ALUNOS = "MARIA"... gostaria de usar WHERE ALUNOS = "$nome"... onde $nome é uma variável recebida pelo método POST de um formulário... Grato!
23/04/2009 12:36pm (~15 anos atrás)

Welton Alves disse:
Estou com problemas de acentuação...

Faço uma pesquisa no BD e quando imprimo os dados em pdf, no lugar das letras acentuadas aparecem caracteres estranhos...
Estou usando SQL SERVER

Alguém tem alguma dica????
09/08/2006 5:59pm (~17 anos atrás)

Minoria,
Eu tinha o mesmo problema e resolvi editando o arquivo .php
e retirei o caracter enter e espaços após o ultimo comando "?>"
01/06/2006 7:42am (~18 anos atrás)


Alguem poderia me ajudar? Não sei como resolver este erro.

Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/plancap/consulta.php:3) in /srv/www/htdocs/plancap/fpdf/fpdf.php on line 1022
FPDF error: Some data has already been output to browser, can't send PDF file
19/05/2006 11:11am (~18 anos atrás)

Olá pessoal,
Gostaria de saber como faço para inserir uma imagem gerada com a JpGraph num pdf gerado com a pdflib.
<?php

$graph = new Graph(...);

// Code to create the graph
// .........................
// .........................

// Put the image in a PDF page
$im = $graph->Stroke(_IMG_HANDLER);

$pdf = pdf_new();
pdf_open_file($pdf, "");

// Convert the GD image to somehing the
// PDFlibrary knows how to handle
$pimg = pdf_open_memory_image($pdf, $im);

pdf_begin_page($pdf, 595, 842);
pdf_add_outline($pdf, "Page 1");
pdf_place_image($pdf, $pimg, 0, 500, 1);
pdf_close_image($pdf, $pimg);
pdf_end_page($pdf);
pdf_close($pdf);

$buf = pdf_get_buffer($pdf);
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");

echo $buf;

pdf_delete($pdf);

?>

Está acontecendo o seguinte erro:
Fatal error: Call to undefined function: pdf_open_memory_image()

Estou usando php 4.3.10
JpGraph v1.20.2
PDFlib GmbH 6.0.p1

O está acontecendo?
10/05/2006 1:50pm (~18 anos atrás)

Ola!
Tenho um sistema em php, adorei seu artigo auterei os meus relatorios para pdf.
fiz todos os seu passos,mas nao aparece nada no meu browser, nem com o adobe aberto simplimente a tela fica em branco. Tive a ideia de instalar o dabe mais recente em algumas máquinas e fazer aceso ao meu sistema. com o reader 5.0 nada aparece, com o 6.0 nada aparece só funcionou no 7.0, porem não posso trabalahr com ele pois meu cliente não tem maquina para isso preciso q funcione no 5.0 o que pode estar errado?
10/04/2006 11:36am (~18 anos atrás)

mt bom artigo, parabens, consegui gerar alguns relatorios em pdf estudando seu artigo.

a minha dúvida é a seguinte: qual a sintaxe para colocar negrito, italico, sublinhado no meio de uma multicell, pegando apenas parte dela para formatar.
por exemlo: o negrito do html


valeu!
09/03/2006 4:52am (~18 anos atrás)

Rogger Lima disse:
Ola Clever, cara, estou com um probleminha, muitas vezes o conteudo das celulas "estoura" as margens e ele nao quebra a linha, existe alguma configuração para ser feita pra sanar esse problema ou alguma sijestao de como resolver isso??
obrigado!!!
obs: excelente tutorial!!!!
18/01/2006 5:10am (~18 anos atrás)

Ae Clever,
somente para comentar... Seu tutorial ajudou e está ajudando e muito a criação de relatórios em PDF. Tendo como ponto de partida seu tutorial, já brinquei e muito com a geração de PDF´s.

Excelente tutorial.
Valeu.
03/11/2005 7:15am (~18 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)