html2fpdf错误:无法修改标头信息

时间:2015-10-19 22:01:33

标签: fpdf html2pdf

我有一个很大的项目在PHP 5.4中使用这个旧库,我试图获得一个简单的php页面来生成pdf。看一个已知的,工作良好的php页面,我编写了这个测试页面,引用了html2fpdf,它似乎是3.0版beta。我相信这是最后一个版本。它仍然适用于生产,但这个简单的PHP页面返回此错误:

Deprecated: Function set_magic_quotes_runtime() is deprecated in /media/psf/Home/apps/clean/fpdf.php on line 1805

Deprecated: Function set_magic_quotes_runtime() is deprecated in /media/psf/Home/apps/clean/fpdf.php on line 1828

Warning: Cannot modify header information - headers already sent by (output started at /media/psf/Home/apps/clean/fpdf.php:1805) in /media/psf/Home/apps/clean/fpdf.php on line 1678
FPDF error: Some data has already been output to browser, can't send PDF file

好的,在堆栈上阅读set_magic_quotes告诉我升级库,这是我无法看到的。查看第1805行,该函数已设置为false。

我确信它在制作中被忽略了,但它显然是在停止我的pdf生成,因为它试图发送标题。我不明白它为什么会在图书馆里。

以下测试在php 5.4.33和5.6.8下的apache 2.4中运行,结果相同。

我没看到什么?

<?php
require_once($_SERVER['DOCUMENT_ROOT']. 'html2fpdf.php');
// header("Content-type:application/pdf");
ob_end_clean();
ob_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>    
<form action="review_template2.php" method="post" name="MainForm">
<p>This is the review_template.tpl.php</p>
</form>    
</body>
</html>    
<?php
$filename = 'saam.pdf';
$html=ob_get_contents();    
$pdf = new HTML2FPDF();
$pdf->AddPage();
$pdf->WriteHTML($html);
ob_end_clean();
$pdf->Output($filename, "D");

设置php标头时出现空白pdf,但是当我将其注释掉时出现上述错误。 thx,sam

1 个答案:

答案 0 :(得分:0)

您可以在error_reporting(0);之后立即添加<?php。这将禁用显示Deprecated-error消息,并允许您的脚本修改标题并显示PDF。 但请注意,这会禁用所有错误报告,因此如果脚本中有其他错误,您将无法收到通知。 或者,您可以使用error_reporting(E_ERROR | E_WARNING | E_PARSE);来显示对脚本有影响的错误。 或者查看error_reporting()上的文档。