Deboracgs 0 Denunciar post Postado Maio 4, 2014 Oi gente, to usando o dom pdf para gerar pdf , o meu caso seria para gerar o boletim em pdf, porem ao fazer o download e abrir o arquivo aparece a mensagem "Falha ao abrir arquivo PDF" esse é o código de geração pdf. <?php include "../conexao/conexao.php"; $idaluno=$_GET['idaluno']; $id = isset($_GET['id']) ? $_GET['id'] : false; $aluno = mysql_query("SELECT * FROM aluno WHERE id='$idaluno'") or die(mysql_error()); $d_aluno = mysql_fetch_assoc($aluno); $c_boletim = mysql_query("SELECT * FROM relacionamento WHERE id_aluno = '$idaluno'") or die(mysql_error()); $html=' <html> <head> <style> #boletim{ margin-top: 20px; } .ch_prof{ color:#8A8787; font-style:italic; font-size:12px; } </style></head> <body> <table width="960" border="1"> <tr> <td width="105">Nome Aluno:</td> <td width="356">'. $d_aluno['nome'].' '.$d_aluno['sobrenome'] .'</td> <td width="74">RA:</td> <td width="398">'. $d_aluno['ra'] .'</td> </tr> <tr> <td>Semestre:</td> <td>1º - Primeiro</td> <td>Ano:</td> <td>2014</td> </tr> <tr> <td>Responsável:</td> <td>'. $d_aluno['nome_responsavel']." ".$d_aluno['sobrenome_responsavel'].'</td> <td>Email:</td> <td>'. $d_aluno['email_responsavel'] .'</td> </tr> </table> <?php while ($cursos=mysql_fetch_array($c_boletim)) { $id_curso = '.$cursos['id_curso'].'; $id_turno = '.$cursos['id_turno'].'; $corrCurso = mysql_query("SELECT * FROM cursos WHERE id='.$id_curso.'") or die(mysql_error()); $i_curso = mysql_fetch_assoc($corrCurso); $corrTurno = mysql_query("SELECT * FROM turnos WHERE id='.$id_turno.'") or die(mysql_error()); $i_turno = mysql_fetch_assoc($corrTurno); $m_boletim = mysql_query("SELECT * FROM materias WHERE curso = '.$id_curso.'") or die(mysql_error()); $n_boletim = mysql_query("SELECT * FROM boletim WHERE id_curso = '.$id_curso.' AND id_aluno = '.$idaluno.'") or die(mysql_error()); ?> <table width="960" border="1"> <tr> <td colspan="3">Curso: '.$i_curso['nome'].' - '. $i_turno['nome'].'</td> </tr> <tr> <td width="424" align="center">Matéria</td> <td width="262" align="center">Conceito</td> <td width="252" align="center">Frequência</td> </tr> <?php while ($materias=mysql_fetch_array($m_boletim)) { $id_materia = '.$materias['id'].'; $n_boletim = mysql_query("SELECT * FROM boletim WHERE id_aluno = '.$idaluno.' AND id_materia = '.$id_materia.'") or die(mysql_error()); $conceito=mysql_fetch_array($n_boletim) ?> <tr> <td>'.$materias['nome'].' <span class="ch_prof">('. $materias['professor'].') </span></td> <td>'.$conceito['conceito'].'</td> <td>'.$conceito['frequencia'].'</td> </tr> <?php } ?> <tr> <td>Data:</td> <td colspan="2" align="right">Frequência Total: ---</td> </tr> </table> <?php } ?></div> </body> </html>'; ?> <?php //Aqui nós chamamos a class do dompdf require_once('dompdf/dompdf_config.inc.php'); //É fundamental definir o TIMEZONE de nossa região para que não tenhamos problemas com a geração. date_default_timezone_set('America/Sao_Paulo'); //Aqui eu estou decodificando o tipo de charset do documento, para evitar erros nos acentos das letras e etc. $html = utf8_decode($html); //Instanciamos a class do dompdf para o processo $dompdf= new DOMPDF(); //Aqui nós damos um LOAD (carregamos) todos os nossos dados e formatações para geração do PDF $dompdf->load_html($html); $dompdf->set_paper('legal','landscape'); //Aqui nós damos início ao processo de exportação (renderizar) $dompdf->render(); //por final forçamos o download do documento, coloquei a nomeclatura com a data e mais um string no final. $dompdf->stream(date('d/m/Y').'_boletim.pdf'); ?> Se poderem me ajudar, fico muito grata Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Danilo 43 Denunciar post Postado Maio 5, 2014 Acho que o fórum bagunçou o script que você postou, é isso mesmo? Referente ao dompdf eu já usei ele 1 vez e não tive problemas (fora formatação um pouco diferente), você já tentou exibir em html, está normal? nenhum erro? Outro detalhe importante é que você não pode usar o método stream se já enviou alguma coisa para o browser, como um echo um um espaço em branco antes de <?php ou depois de ?> (isto iria se misturar com PDF). Para saber se é isso que está acontecendo você pode tentar zerar a saída antes de enviar o PDF: ob_clean(); $dompdf->render(); //por final forçamos o download do documento, coloquei a nomeclatura com a data e mais um string no final. $dompdf->stream(date('d/m/Y').'_boletim.pdf'); Compartilhar este post Link para o post Compartilhar em outros sites