Ir ao conteúdo
  • Cadastre-se

Erro no DomPhp (gerar pdf com php)


Henrique Valença

Posts recomendados

Boa tarde,

Estou novamente com um problema no meu site , só que agora em outra seção.

Nessa parte do site no painel administrativo eu tenho uma tabela com os usuários cadastrados, o e-mail e um botão pra editar que abre uma página de edição. nessa página de edição tem um link pra gerar um pdf com esses dados. é isso que tá dando errado.

Estou usando o DomPhp pois preciso que os dados sejam formatados em HTML.

O código tá assim:

<?php
require 'dompdf/dompdf_config.inc.php';
require 'lib/core2.php';


date_default_timezone_set ('America/Sao_Paulo');

$id = get('id');
$dados_usuario = db::find('first', sprintf("SELECT * FROM usuarios WHERE id = '%u'", $id));

if (!$dados_usuario) {
exit('Usuário não encontrado.');
}

switch (date("mm")) {
case "01": $mes = Janeiro; break;
case "02": $mes = Fevereiro; break;
case "03": $mes = Março; break;
case "04": $mes = Abril; break;
case "05": $mes = Maio; break;
case "06": $mes = Junho; break;
case "07": $mes = Julho; break;
case "08": $mes = Agosto; break;
case "09": $mes = Setembro; break;
case "10": $mes = Outubro; break;
case "11": $mes = Novembro; break;
case "12": $mes = Dezembro; break;
}
;
$m = '$mes';
$dia = date ('dd');
$ano = date ('yyyy');
$data = ''.$dia.' de '.$m.' de '.$ano.'';
$arquivo = "$dados_usuario ['nome']";


$html=" <html><body>

<p align='right'> São Paulo, ".$data."</p>

... (dados do usuário na carta com conteúdo confidencial)

</body>

</html>";

$dompdf = new DOMPDF ();
$dompdf->load_html($html);
$dompdf->set_paper('letter', 'portrait');
$dompdf->render();
$dompdf->stream("$arquivo.pdf")

?>

Bom, o erro é o seguinte,:

1º Quando mantenho o "$dompdf->stream("$arquivo.pdf")" que faz o navegador fazer o download do arquivo ele gera o seguinte erro: "Unable to stream pdf: headers already sent"

2º Quando retiro o "$dompdf->stream("$arquivo.pdf")" a página fica em branco.

O que fazer?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Amigo, esse erro ocorre quando qualquer dado, como HTML, já foi 'processado' e, consequentemente, seus cabeçalhos também.

Verifique se existe uma linha, espaço, ou qualquer coisa em branco antes do $dompdf->stream(). Por exemplo na primeira linha:


<------
<?php

requice_once();
...

Isso serve para o final do arquivo. Verifique todos os espaços em branco que podem ter sido enviados ocasionalmente.

Verifique também que o código não deu nenhum erro (como por ex E_NOTICE's) pois isso gera um HTML e headers também.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Não.. só há problema se tiver sido enviado qualquer conteúdo..

O arquivo lib/core2.php que é chamado não possui nenhuma definição de header? algo como:

Header('...');

Você possui o Firebug? (Ou o HTTP Watch Professional para o IE ou semelhante para Chrome) Você conseguiu ver o retorno exato que vem da requisição? qual é?

Link para o comentário
Compartilhar em outros sites

Não.. só há problema se tiver sido enviado qualquer conteúdo..

O arquivo lib/core2.php que é chamado não possui nenhuma definição de header? algo como:

Header('...');

Você possui o Firebug? (Ou o HTTP Watch Professional para o IE ou semelhante para Chrome) Você conseguiu ver o retorno exato que vem da requisição? qual é?

Não há qualquer cabeçalho. inclusive eu criei esse core2 porque no core1 tem cabeçalho.

Não possuo o firebug nem nenhum dos outros. pra que serve?

Qual retorno exato?

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...