dompdf图像溢出问题

时间:2012-12-12 10:03:42

标签: php pdf image-processing pdf-generation dompdf

我有一个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页面大,我可以剪掉一张图片。但问题在于需要知道手头上是否有文字或类似的东西,所以它不是那么简单。

提前谢谢大家。任何见解都会非常感激。

1 个答案:

答案 0 :(得分:5)

如果你发布了html和css,我会更有帮助... 记住了两件事:

选项#1

尝试将图像包装在附加DIV中并明确设置宽度和溢出规则。

选项#2

在我成为dompdf的忠实粉丝之前,我发现wkhtmltopdf之后从未回头。 wkhtmltopdf是一种能够正确完成工作的非凡工具。要尝试此解决方案,请执行以下操作:

  1. project home page下载静态二进制文件,它是特定于体系结构的,所以请选择正确的二进制文件...您可以同时下载两者;在运行时检测架构并加载适当的二进制文件
  2. 将文件放在项目可访问的某个目录中,例如
    /path/to/my/proj/bin/wkhtmltopdf
  3. 运行你的脚本和generat html文件;将其保存到某个tmp文件中file_put_contents('/tmp/myfile.html', $html);
  4. 运行转换命令
    shell_exec('/path/to/my/proj/bin/wkhtmltopdf /tmp/myfile.html /tmp/myfile.pdf')
  5. 获取生成的pdf的内容,更改响应标头并为文件提供服务:
    header('Content-Type: application/pdf');

    echo file_get_contents('/tmp/myfile.pdf');

相关问题