Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com dificuldade em gerar um arquivo pdf que contenha loop (for ou while)
Estou utilizando a bibilioteca mpdf para gerar pdfs.
Se souberem identificar o erro.
<?php
ob_start();
echo "<table>";
for($i=0; $i<65; $i++){
echo "<tr>";
echo "<td>";
echo "mundo doido!";
echo "</td>";
echo "</tr>";
}
echo "</table>";
// Conteudo do PDF aqui
$html = ob_get_contents();
// pega o conteudo do buffer, insere na variavel e limpa a memória
$html = utf8_encode($html);
// converte o conteudo para uft-8
//define('MPDF_PATH', 'MPDF54/');
include('mpdf.php');
// inclui a classe
$mpdf = new mPDF();
// cria o objeto
$mpdf->allow_charset_conversion=true;
// permite a conversao (opcional)
$mpdf->charset_in='UTF-8';
// converte todo o PDF para utf-8
$mpdf->WriteHTML($html);
// escreve definitivamente o conteudo no PDF
$mpdf->Output();
// imprime
exit();
// finaliza o codigo
?>
Obrigado pela informação. Ajudou muito.
Eu não estava limpando o buffer o que dava erro na geração do pdf.
>
Após setar a variavel $html pelo ob_get_contents() tente adicionar abaixo ob_end_clean();
Eu acredito que deve finalizar o OB senão nada será printado, e sim ainda estará colocando em buffer
Na verdade, mais importante que limpar o buffer você não estava encerrando-o.
Output Buffering, assim como sessões, você inicia, faz a lguma coisa e encerra. A diferença é que você faz ainda mais coisa depois de encerrar.
Como Assim ? Poderia por favor explicar o seu pensamento!
Após setar a variavel $html pelo ob_get_contents() tente adicionar abaixo ob_end_clean();
Eu acredito que deve finalizar o OB senão nada será printado, e sim ainda estará colocando em buffer