我有一个PDF生成问题,目前我的系统正在使用dompdf将HTML转换为PDF,这一切都运行正常。但是,如果用户插入的图像大于A4页面,则PDF会严重损坏并且大图像下方的所有内容都会聚集在一起或根本不显示。
以下是两个显示问题示例的PDF
这个很好
https://dl.dropbox.com/u/65878041/OK.pdf
这个你可以看到第一张图像大于A4页面的所有内容都被搞砸了,当它应该与前一张相同时。
https://dl.dropbox.com/u/65878041/Issue.pdf
我理想的做法是将图像分成几部分,并根据需要跨越多个页面。就像在LaTeX solution中完成的一样。有没有可能用dompdf这样做?或者用于HTML到PDF的任何其他PHP库?
我自己调查了一下,显然如果它比A4页面大,我可以剪掉一张图片。但问题在于需要知道手头上是否有文字或类似的东西,所以它不是那么简单。
提前谢谢大家。任何见解都会非常感激。
答案 0 :(得分:5)
如果你发布了html和css,我会更有帮助... 记住了两件事:
选项#1
尝试将图像包装在附加DIV中并明确设置宽度和溢出规则。
选项#2
在我成为dompdf
的忠实粉丝之前,我发现wkhtmltopdf
之后从未回头。 wkhtmltopdf
是一种能够正确完成工作的非凡工具。要尝试此解决方案,请执行以下操作:
/path/to/my/proj/bin/wkhtmltopdf
file_put_contents('/tmp/myfile.html', $html);
shell_exec('/path/to/my/proj/bin/wkhtmltopdf /tmp/myfile.html /tmp/myfile.pdf')
获取生成的pdf的内容,更改响应标头并为文件提供服务:
header('Content-Type: application/pdf');
echo file_get_contents('/tmp/myfile.pdf');