加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php和dompdf – 如何在不让我的服务器突然停止的情况下生成大型p

发布时间:2020-12-13 17:23:57 所属栏目:PHP教程 来源:网络整理
导读:我试图用dompdf将一个较大的html表格渲染为pdf.有最小的CSS样式,但表中可能有200-300行.每行有4个td,带有基本文本. 我可以生成一个较小的表的pdf没有问题,但更大的表将耗尽内存限制,脚本将终止.解决这个问题的最佳方法是什么?我开始讨论serverfault,一个用
我试图用dompdf将一个较大的html表格渲染为pdf.有最小的CSS样式,但表中可能有200-300行.每行有4个td,带有基本文本.

我可以生成一个较小的表的pdf没有问题,但更大的表将耗尽内存限制,脚本将终止.解决这个问题的最佳方法是什么?我开始讨论serverfault,一个用户建议生成一个新进程,以免耗尽php / apache的内存限制?这是最好的方法吗?这引出了一些关于如何工作的问题,因为dompdf目前将下载流式传输到浏览器,但我假设如果我创建一个新的流程来生成报告,我就不能再将输出发送到浏览器了用户下载?

感谢任何能够提出解决方案的人!

解决方法

如果使用辅助 PHP进程(例如,使用exec())呈现HTML,则可以减轻执行时间和内存限制.在此方法中渲染时,将渲染的PDF保存到网站上的目录,并将用户重定向到下载(如果要运行渲染队列,甚至通过电子邮件发送链接).一般来说,我发现这种方法在速度和内存使用方面确实提供了适度的改进.

但是,这并不意味着渲染在您的情况下会表现得更快.目前使用dompdf渲染表是资源密集型的.如果可以的话,更好的方法是将文档分成几部分,分别渲染每个部分(再次使用辅助PHP过程),将生成的PDF集合组合成一个文件(使用类似pdftk的东西),然后将PDF保存在用户可以访问的位置.我发现使用这种方法可以显着提高性能.

或者使用像wkhtmltopdf这样的东西(如果你有shell访问你的服务器并愿意处理安装过程).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读