2013-02-28 46 views
0

我收到此错误信息:FPDF错误输出发送到浏览器

FPDF error: Some data has already been output, can't send PDF file

当我启动下面的代码;你知道为什么吗?你可以帮我吗?

$i = 0; 
while ($i <= $y) 
{ 
    $namefilepdf=$x_labelname.$i.'.pdf'; 
    $pdf=new FPDF(); 
    $pdf->AddPage($x_lay,$x_dimpag); 
    $pdf->SetFont('Arial');   

    if (isset($x_toprint1)) 
    if ($x_toprint1=='on') 
     if (isset($x_progressive1)) 
     { 
      if ($x_progressive1=='on') 
      { 
      $pdf->SetFontSize($x_font1); 
      $pdf->Text($x_coordx1,$x_coordy1,$x_val1+$i); 
      } 
     } 
     else 
     { 
      $pdf->SetFontSize($x_font1); 
      $pdf->Text($x_coordx1,$x_coordy1,$x_valore1); 
     } 
    $pdf->Output($namefilepdf,'D'); 
    $i++; 
} 
+0

你会看到注释线的时候'$ PDF - >输出($ namefilepdf, 'd');'?一个空白的屏幕? – sofl 2013-02-28 13:47:11

回答

1

这是怎么一回事,因为在你的代码的某个地方outputing你的PDF对象,你已经做了一些echovar_dump或任何其他输出梅托德之前。 使用header你不能发送header语句之前别的标准输出

+0

specifiy我假设你不能在'$ pdf-> Output($ namefilepdf,'D')输出超过1个文件''>第一个文件可以通过但循环到另一个文件会给出错误。你怎么能下载超过1个文件访问只有1个网站链接? – ulkas 2013-02-28 13:47:40

2

对于FPDF工作outputing数据时,不能有任何其他输出。诸如您的PHP文件中其他地方的echo声明,您的<?php ?>标记之前或之后的任何内容(包括空格)都将导致该错误消息。

我怀疑在你的PHP文件的其他地方,可能有一些非FPDF输出导致你看到这个错误。

1

使用输出缓冲的位置: -

之前发送到输出清洁使用ob_clean();输出缓冲区。

ob_clean();//add this line 
$pdf->Output($namefilepdf,'D'); 

请参阅本link了解ob_clean();