+10

Criando relatórios no formato PDF

criado por Cléver Anjos em 06/07/2002 1:58pm
Abaixo segue exemplo da geração de um relatório usando a classe recém estendida:

<?php
require_once("pdf.php");
function PDFClientes() {
    $pdf = new PDF('L'); // relatório em orientação "paisagem"

    $pdf->SetName("Listagem de Clientes");
    $pdf->Open();
    $pdf->AddPage();
    $pdf->SetFont('Arial', '', 10);
    $result = BDQuery("SELECT c.codigo,c.nome,l.tipo,l.nome,
                    c.numero,b.nome,c.telefone,DATE_FORMAT(c.nasc,'%d/%m/%Y'),c.cpf,c.rg,cep.cepid,cep.cidade
    	   FROM clientes as c, logradouros as l, bairros as b, cep
            WHERE (c.logradouro= l.codigo AND c.bairro = b.bid AND c.cep = cep.cepid)ORDER BY c.nome");
    while ( $row = BDRowArray($result) ) {
          $pdf->Cell(10, 5, $row[0], 0, 0);
          $pdf->Cell(80, 5, $row[1], 0, 0);
          $pdf->Cell(75, 5, $row[2]." ".$row[3].", ".$row[4], 0, 0);
          $pdf->Cell(40, 5, $row[5], 0, 0);
          $pdf->Cell(25, 5, $row[6], 0, 0);
          $pdf->Cell(20, 5, $row[7], 0, 0);
          $pdf->Cell(30, 5, $row[8], 0, 1);
    }
    $pdf->Output();
}
PDFClientes();
?>

Não preciso me preocupar em numerar páginas, pois o FPDF faz o break automaticamente por mim.

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 (~18 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 (~19 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 (~19 anos atrás)

Novo Comentário:

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