现在我正在使用Zend Framework将转换html文件转换为pdf,我使用TCPDF执行此操作,以下是我的代码。
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$view = new Zend_view();
$htmlcontent = $view->render('media-file.phtml');
$pdf->AddPage();
$pdf->writeHTML($htmlcontent, true, 0, true, 0);
$pdf->lastPage();
$pdf->Output("single-page.pdf", 'D');
我的问题是文件正在下载,但是当打开下载的文件时,它显示“无法加载pdf文档'”。 我不知道我错在哪里。请让我知道
答案 0 :(得分:0)
有很多地方可能会出现问题。
首先,HTML是否有效? TCPDF期望有效的HTML,只处理HTML的子集,并且所有HTML属性必须用双引号括起来,所以你应该在进一步检查之前检查所有这些。
http://www.tcpdf.org/doc/code/classTCPDF.html#ac3fdf25fcd36f1dce04f92187c621407
接下来是“无法加载pdf文档'错误。哪个应用程序实际显示该错误?问题是浏览器是否未成功下载文件,或者PDF阅读器无法打开文件?
不要将PDF文件发送到浏览器,而是尝试将其保存到文件中。这样您就可以消除浏览器可能出现的任何问题(以及在下载之前将杂散数据发送到浏览器时可能发生的任何问题)。
将PDF直接写入文件后,正如@MonkeyZeus所说,尝试在记事本中打开它,甚至只使用" head"命令,如果你可以查看前几行。如果它不是从这样的东西开始那么PDF是无效的:
%PDF-1.7
如果您仍然无法解决问题,那么发布指向HTML示例的链接并了解您正在使用的TCPDF版本会很有帮助。将@MonkeyZeus建议的PHP错误级别设置为高并包括任何错误消息也会有所帮助。