Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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??

Compartilhar este post


Link para o post
Compartilhar em outros 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á?

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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");

?>

Compartilhar este post


Link para o post
Compartilhar em outros 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:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.