dompdf图像溢出问题

Mar*_*son 11 php pdf pdf-generation image-processing 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解决方案中完成的一样.有没有可能用dompdf这样做?或者用于HTML到PDF的任何其他PHP库?

我自己调查了一下,显然如果它比A4页面大,我可以剪掉一张图片.但问题在于需要知道手头上是否有文字或类似内容的方法,所以它并不那么简单.

谢谢大家.任何见解都将非常感激.

Ale*_*lex 5

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

选项1

尝试将图像包装在附加DIV中并显式设置宽度和溢出规则.

选项#2

在我成为一个狂热的粉丝之前,dompdf但发现之后wkhtmltopdf从未回头.wkhtmltopdf是一个非凡的工具,可以正确完成工作.要尝试此解决方案,请执行以下操作

  1. 项目主页下载静态二进制文件,它是特定于体系结构的,所以选择正确的二进制文件...你可以下载两者; 在运行时检测架构并加载适当的二进制
  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');