繁体   English   中英

dompdf图像溢出问题

[英]dompdf image overflow issue

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

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

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

选项1

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

选项#2

以前我是一个大风扇dompdf ,但发现后wkhtmltopdf永不回头。 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');

我不知道图像是如何显示的,但你可以告诉dompdf在某个元素之后或之前分割页面。 例如:

<div style='page-break-after:always;'>
    <img src="PATH_TO_IMAGE" />
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM