eric123 0 Denunciar post Postado Novembro 26, 2013 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
Paulo de Tarso F. M. 24 Denunciar post Postado Novembro 26, 2013 Por que você está usando ob_start()? Compartilhar este post Link para o post Compartilhar em outros sites
eric123 0 Denunciar post Postado Novembro 26, 2013 pra iniciar o buffer. Se eu nao colocar ele da esse erro: "FPDF error: Some data has already been output, can't send PDF file" Compartilhar este post Link para o post Compartilhar em outros sites
Paulo de Tarso F. M. 24 Denunciar post Postado Novembro 26, 2013 Então verifique o que pode estar "printando" alguma coisa na tela antes... Certifique-se de que não haja nenhum espaço ou tab fora da área do PHP. Compartilhar este post Link para o post Compartilhar em outros sites
eric123 0 Denunciar post Postado Novembro 26, 2013 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
EduardoAugustoPHP 27 Denunciar post Postado Novembro 26, 2013 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
Paulo de Tarso F. M. 24 Denunciar post Postado Novembro 26, 2013 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: Compartilhar este post Link para o post Compartilhar em outros sites
EduardoAugustoPHP 27 Denunciar post Postado Novembro 26, 2013 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
eric123 0 Denunciar post Postado Novembro 26, 2013 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
Paulo de Tarso F. M. 24 Denunciar post Postado Novembro 26, 2013 Já tentou usar o TCPDF? :seta: http://www.tcpdf.org/ Quando preciso gerar PDFs com PHP eu uso essa classe, até hoje ela sempre atendeu às necessidades... Compartilhar este post Link para o post Compartilhar em outros sites
juniorbezerra 6 Denunciar post Postado Novembro 26, 2013 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
Paulo de Tarso F. M. 24 Denunciar post Postado Novembro 27, 2013 Eu acho que um desses posts está duplicado, não? :sleep: :seta: http://forum.imasters.com.br/topic/512348-problema-no-fpdf-gerador-de-pdf/ :seta: http://forum.imasters.com.br/topic/444730-fpdf-error-some-data-has-already-been-output-cant-send-pdf-file/ Compartilhar este post Link para o post Compartilhar em outros sites
EduardoAugustoPHP 27 Denunciar post Postado Novembro 27, 2013 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