FPDF错误:有些数据已经输出,不能发送PDF

我正在为我的项目使用fpdf库,并使用它来扩展drupal模块之一。 这些线

$pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); 

给我一个错误: FPDF错误:一些数据已经输出,不能发送PDF

我试图创build一个单独的文件之外的drupal区域名称test.php,并在查看它的工作。 这里的任何人都知道为什么这不起作用? 或者任何人都可以指向我一个正确的PDF库,我可以用在Drupal中查看HTML格式为PDF格式。

为了使fpdf正常工作,除了fpdf生成外,根本就没有任何输出。 例如,这将工作:

 <?php $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?> 

虽然这不会(注意开始<?标签之前的空格)

  <?php $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?> 

此外,这也不会工作( echo将打破它):

 <?php echo "About to create pdf"; $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?> 

我不确定事物的drupal方面,但是我知道绝对的非fpdf输出是fpdf工作的要求。

给我一个错误如下:
FPDF error: Some data has already been output, can't send PDF

来过来这个错误:转到fpdf.php在那,转到行号996

 function Output($name='', $dest='') 

之后进行如下更改:

 function Output($name='', $dest='') { ob_clean(); //Output PDF to so 

添加ob_start (); 在顶部和最后添加ob_end_flush();

 <?php ob_start(); require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ob_end_flush(); ?> 

尝试保存没有“BOM注释”选项的文件,即在Adobe Dreamweaver中,将文件另存为…, 取消选中包括Unicode签名(BOM) ”文件名下方的框。

在Notepad ++上,您应该select菜单: 编码 ,“ 使用UTF-8 编码无BOM ”。

并将其设为您创build的其他文件的默认设置,将来您将可以省去很多麻烦。

你好,你有一个会议标题在页面的顶部。 或任何包括如果你有尝试添加这个代码在页面顶部它应该工作正常。

 <? while (ob_get_level()) ob_end_clean(); header("Content-Encoding: None", true); ?> 

欢呼声:-)

FPDF错误消息将指向您正在发送一些内容的PHP线路。

如果你没有提示什么文件和行发送一些内容,你可能有一个编码不匹配在你的包含/需要文件。

为了我

  • fpdf.php是ANSI编码的,
  • 我的pdf-generator.php是UTF-8编码的
  • 我的数据库连接inlude是UTF-8编码(这种UTF-8编码确实会引起FPDF错误,我不得不将它切换回ANSI)

在我的情况下,我已经设置:

 ini_set('display_errors', 'on'); error_reporting(E_ALL | E_STRICT); 

当我提出生成报告的请求时,浏览器中显示了一些警告(如使用弃用函数)。
off display_errors选项,报告已成功生成。

如果您是PDF生成之前的代码输出通知/警告,请尝试closures它们。 error_reporting(0) 。 然后处理那里的警告

你需要打电话给图书馆

require('fpdf.php');

 <?php require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'¡Hola, Mundo!'); $pdf->Output(); ?> 

http://www.fpdf.org/

http://www.fpdf.org/es/tutorial/tuto1.htm

第一步检查文件夹的权限第二步把这个

 ob_start(); 

在线之前

 $pdf->Output(); 

我用了以下,它为我工作

 require_once ('pdf/fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(F,'/var/www/html/PATH/filename.pdf'); ob_end_flush();