Ir para conteúdo

POWERED BY:

Arquivado

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

Deboracgs

Falha ao gerar PDF - DOMPDF

Recommended Posts

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

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

×

Informação importante

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