Ir para conteúdo
Fórum Script Brasil
  • 0

Erro na classe FPDF


AndréSAP

Pergunta

Qual seria o motivo do erro FPDF error: Some data has already been output, can't send PDF file??

Meu código:

<?php
define('FPDF_FONTPATH', 'font/');
require('fpdf16/fpdf.php');

// bd.php deve conter as funções para se conectar no banco de dados
$conexao = mysql_connect("localhost","root","");
if (!$conexao) echo "Não foi possível conectar ao MySQL <br />";
if (!mysql_select_db("sulinfo",$conexao)) echo "Não foi possível selecionar o banco <br />";

// busca os dados no banco de dados
$busca = mysql_query("select a.id_atendimento,c.nome as cliente, case when (p.nome is NULL or p.nome='') then '-' else p.nome end as produto, case when (s.nome is NULL or s.nome='') then '-' else s.nome end as servico, f.nome as funcionario, date_format(data_atendimento, '%d/%m/%Y') as data_atendimento, case when (p.valor is NULL or p.valor='') then '-' else p.valor end as valor_produto, case when (s.valor is NULL or s.valor='') then '-' else s.valor end as valor_servico from atendimentos a join clientes c on (c.id_cliente = a.id_cliente) left join produtos p on (p.id_produto = a.id_produto) left join servicos s on (s.id_servico = a.id_servico) left join funcionarios f on (f.id_funcionario = a.id_funcionario)");
$pdf = new FPDF();
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(40, 5, 'Atendimento');
$pdf->SetX(35);
$pdf->Cell(60, 5, 'Nome');
$pdf->SetX(50);
$pdf->Cell(40, 5, 'Produto');
$pdf->SetX(77);
$pdf->Cell(40, 5, 'Serviço');
$pdf->SetX(97);
$pdf->Cell(40, 5, 'Funcionário');
$pdf->SetX(107);
$pdf->Cell(40, 5, 'Data do Atendimento');
while ($resultado = mysql_fetch_array($busca)) {
    $pdf->ln();
    $pdf->Cell(40, 5, $resultado['id_atendimento']);
    $pdf->SetX(35);
    $pdf->Cell(60, 5, $resultado['cliente']);
    $pdf->SetX(50);
    $pdf->Cell(40, 5, $resultado['produto']);
    $pdf->SetX(77);
    $pdf->Cell(40, 5, $resultado['servico']);
    $pdf->SetX(97);
    $pdf->Cell(40, 5, $resultado['funcionario']);
    $pdf->SetX(107);
    $pdf->Cell(40, 5, $resultado['data_atendimento']);
}

mysql_close($conexao);

$pdf->Output();
?>

Tks.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Uma outra pergunta, tem como eu gerar um PDF a partir de um CSV? Seria mais fácil. Obrigado!

tente isso

<?php

header("Content-type:application/pdf");

require_once ('fpdf/fpdf.php');

define('FPDF_FONTPATH','fpdf/font/');

// bd.php deve conter as funções para se conectar no banco de dados

/*$conexao = mysql_connect("localhost","root","");

if (!$conexao) echo "Não foi possível conectar ao MySQL <br />";

if (!mysql_select_db("sulinfo",$conexao)) echo "Não foi possível selecionar o banco <br />";

*/

// busca os dados no banco de dados

//$busca = mysql_query("select a.id_atendimento,c.nome as cliente, case when (p.nome is NULL or p.nome='') then '-' else p.nome end as produto, case when (s.nome is NULL or s.nome='') then '-' else s.nome end as servico, f.nome as funcionario, date_format(data_atendimento, '%d/%m/%Y') as data_atendimento, case when (p.valor is NULL or p.valor='') then '-' else p.valor end as valor_produto, case when (s.valor is NULL or s.valor='') then '-' else s.valor end as valor_servico from atendimentos a join clientes c on (c.id_cliente = a.id_cliente) left join produtos p on (p.id_produto = a.id_produto) left join servicos s on (s.id_servico = a.id_servico) left join funcionarios f on (f.id_funcionario = a.id_funcionario)");

$pdf= new FPDF("P","mm","A4");

$pdf->SetFont('arial','',10);

/* titulo do relatorio */

$pdf->SetTitle('Relatório administrativo'); /* titulo*/

$pdf->SetSubject("Relatório referente ao mês ".$MesEstenco); /* subtitulo */

$pdf->SetY("-1"); /* limite da margen */

$titulo="Titulo do Artigo";

//escreve no pdf largura,altura,conteudo,borda,quebra de linha,alinhamento30.

$pdf->Cell(40,5,"Relatório",0,0,'L');

$pdf->Cell(0,5,'rickayron',0,1,'R');

$pdf->Cell(0,0,'',1,1,'L');

$pdf->Ln(8);

$pdf->SetY("21");

//posiciona horizontalmente 30mm42.

$pdf->SetX("10");

$pdf->Cell(30, 5, 'Atendimento',0,0,'L');

$pdf->Cell(30, 5, 'Nome',0,0,'L');

$pdf->Cell(30, 5, 'Produto',0,0,'L');

$pdf->Cell(30, 5, 'Serviço',0,0,'L');

$pdf->Cell(40, 5, 'Funcionário',0,0,'L');

$pdf->Cell(40, 5, 'Data do Atendimento',0,0,'L');

/*while ($resultado = mysql_fetch_array($busca)) {

$pdf->ln();

$pdf->Cell(40, 5, $resultado['id_atendimento']);

$pdf->SetX(35);

$pdf->Cell(60, 5, $resultado['cliente']);

$pdf->SetX(50);

$pdf->Cell(40, 5, $resultado['produto']);

$pdf->SetX(77);

$pdf->Cell(40, 5, $resultado['servico']);

$pdf->SetX(97);

$pdf->Cell(40, 5, $resultado['funcionario']);

$pdf->SetX(107);

$pdf->Cell(40, 5, $resultado['data_atendimento']);

}

*/

//mysql_close($conexao);

$pdf->Output('pdf.pdf');

?>

não sei se a classe fpdf permite essa operação, mas sei que ela permite gerar o fpdf a partir do html que é bem mais simples e maleavel que escrever 'pdf' manualmente.

qualquer duvida poste ai, até mais.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...