我试图使用dompdf从智能模板生成一个pdf文件:代码如下:-
require_once('dompdf/dompdf_config.inc.php');
$dompdf = new DOMPDF();
$dompdf->load_html($smarty->fetch(CURRENT_TEMPLATE.'/module/shopping_cart.html'));
$dompdf->render();
$dompdf->stream("sample.pdf");
生成了PDF文件,但当我尝试打开PDF文件时,显示如下错误消息“Acrobat无法打开”sample.pdf“,因为它不是支持的文件类型或因为文件已损坏”。当我尝试打开PDF文件时,HTML页面显示正确
echo $smarty->fetch(CURRENT_TEMPLATE.'/module/shopping_cart.html')
所以请帮我解决这个错误...提前感谢
5条答案
按热度按时间8cdiaqws1#
在调用
$dompdf->stream();
之前使用ob_end_clean();
。此函数用于丢弃最上层输出缓冲区的内容并关闭此输出缓冲。如果要进一步处理缓冲区的内容,必须在ob_end_clean()之前调用ob_get_contents(),因为调用ob_end_clean()时缓冲区的内容会被丢弃。
PHP manual ob_end_clean
qzwqbdag2#
我也得到了同样的错误,但当我在
$dompdf->stream()
之前使用ob_end_clean()
时,它对我有效。下面是我的代码。
wlzqhblo3#
是的,这是一个问题的dompdf。但我能够克服从这个问题。我创建了一个功能的pdf创建。检查以下功能:-
注:-您需要将生成的PDF作为字符串,然后将其保存到PDF文件。
EDIT:-您可以从上述功能中删除以下部分:-
以上代码用于处理多个页面标题。
mfpqipee4#
对我来说很有效,在我代码结尾看起来像:
unguejic5#
我有问题与我的pdf创建的dompdf我打开pdf文件在记事本++我发现下面的PHP错误与dompdf
这是由于旧版本的dompdf不支持php 7版本,更新dompdf库后,问题得到解决。
下载最新的dompdf库here