Jump to content

Archived

This topic is now archived and is closed to further replies.

eric123

Problema no FPDF (Gerador de PDF)

Recommended Posts

Boa tarde pessoal.
Estou usando a classe FPDF para gerar uns PDFs.
Segue um exemplo abaixo:

 

require('lib/fpdf/fpdf.php');
define('FPDF_FONTPATH', 'lib/fpdf/font/'); 

ob_start ();

$pdf = new FPDF();    
$pdf->Open(); 
$pdf->AddPage(); 
$pdf->SetFont('arial','', 10); 
$pdf->SetFont('arial','B',18);
$pdf->Cell(0,5,"Relatório",0,1,'C');
$pdf->Cell(0,5,"","B",1,'C');
$pdf->Ln(50);

$pdf->Output("arquivo.pdf","D");

 

Ele faz um download do arquivo gerado. porém o problema q está acontecendo é que, nenhum leitor de PDF consegue abri-lo, no adobe da um erro do tipo "o Adobe Reader não pôde abrir 'arquivo.pdf' porque não há suporte a esse tipo de arquivo ou ele foi danificado."

Alguem consegue me ajudar nisso??

Share this post


Link to post
Share on other sites

Ja havia olhado, nao há caracteres estranhos antes de <?php

Reparei que quando utilizao metodo Output() com os seguintes parametros acontece o seguinte:

$pdf->Output(); //Tenta exibir o pdf no navegador (nao consegue exibir, da erro)
$pdf->Output("arquivo.pdf","D"); //Ele pede para fazer download do arquivo mas nao consigo abrir no adobe depois de baixado.
$pdf->Output("arquivo.pdf",""); //Ele gera o arquivo na raiz do site, porem consigo abri-lo normal, nao ocorre erro no adobe.

Estranho, o que será?

Share this post


Link to post
Share on other sites

Cara, eu fiz alguns testes aqui e funcinou. Imprimi ele no navegador e também fiz o download.

 

Olha o meu código:

 

<?php
require('fpdf/fpdf.php');
define('FPDF_FONTPATH', 'fpdf/font/'); 
 
//	ob_start ();
 
$pdf = new FPDF();    
$pdf->Open(); 
$pdf->AddPage(); 
$pdf->SetFont('arial','B',18);
$pdf->Cell(0,5,"Relatório",0,1,'C');
$pdf->Cell(0,5,"EU FIZ AQUI E DEU CERTO!!!","B",1,'C');
$pdf->Ln(50);
 
$pdf->Output("arquivo.pdf","I");

?>

Não fiz nada de diferente de você.

 

Você já tentou atualizar a versão do fpdf?Essa é a versão mais recente (oficial) http://www.fpdf.org/en/dl.php?v=17&f=zip

 

Tenta novamente com essa nova versão.

 

abs

Share this post


Link to post
Share on other sites

O EduardoAugustoPHP usou o parâmetro I ao invés do D no Output... Foi isso que vi de diferente entre um e outro...

 

:joia:

Eu testei com os dois...

 

é que o parametro I eu imprimo no navegador e o D ele faz o download.

 

:P

Share this post


Link to post
Share on other sites

Bom galera, nao consegui resolver o problema do "D", download. Mas consegui resolver o meu problema de outra maneira, da seguinte forma:

Utilizei o parâmetro "F" ou "", q significa salvar em um diretório (no caso do fdpf, na raiz), porem mandei como parâmetro o caminho e o nome do arquivo, fazendo com q ele salve o arquivo em um diretório e, em seguida, disponibilizei o link para o usuário baixar (pois desta forma ele gera o PDF funcionando sem erro). Depois vou gerar um script para apagar esses PDFs temporários, q após os usuários baixa-los nao servirá mais para nada.

:D

Share this post


Link to post
Share on other sites

ob_clean(); resolvia meu problema, veja se pode resolver o seu...

 

<?php
require('fpdf/fpdf.php');
define('FPDF_FONTPATH', 'fpdf/font/'); 
 
//	ob_start ();
 
$pdf = new FPDF();    
$pdf->Open(); 
$pdf->AddPage(); 
$pdf->SetFont('arial','B',18);
$pdf->Cell(0,5,"Relatório",0,1,'C');
$pdf->Cell(0,5,"EU FIZ AQUI E DEU CERTO!!!","B",1,'C');
$pdf->Ln(50);
ob_clean(); // Quando usava essa classe o ob_clean() resolvia meu problema
$pdf->Output("arquivo.pdf","I");

?>

Share this post


Link to post
Share on other sites

Cara..o fato é que eu não entendi porque comigo funcionou perfeitamente...não deu pau nenhum.

 

Por questões de didática.....

 

Pode ser a versão do PHP do servidor dele?

Pode ser a versão da Classe?

 

 

:google:

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.