php html 转 pdf,用PHP将HTML + CSS转换为PDF?

博客作者遇到了在使用HTML2PDF将HTML转换为PDF时遇到的PHP错误,该错误与pcre.backtrack_limit配置有关。通过增加此限制和调整其他PHP配置如memory_limit和max_execution_time,问题得到了解决。然而,HTML2PDF在处理70k文件时消耗大量资源,导致转换缓慢且内存占用过高。作者寻求进一步的性能优化方案。
摘要由CSDN通过智能技术生成

经过一些调查和一般的拉毛解决方案似乎是HTML2PDF。 DOMPDF做了一个糟糕的工作,包括表格,边框甚至是中等复杂的布局,htmldoc似乎相当健壮,但几乎完全是CSS无知的,我不想回到没有CSS只为该程序做HTML布局。

HTML2PDF看起来最有希望,但我一直有关于node_type的空引用参数的这个奇怪的错误。我终于找到了解决方案。基本上,PHP 5.1.x在任何大小的字符串上使用正则表达式替换(preg_replace_ *)都可以正常工作。PHP 5.2.1引入了一个名为pcre.backtrack_limit的php.ini配置指令。此配置参数的作用是限制完成匹配的字符串长度。为什么这是介绍我不知道。默认值选择为100,000。为什么这么低的价值呢?再一次,不知道。

令人恐惧的是,当超过限制时,替换只是默默地失败。至少如果一个错误被提出并记录下来,你就会知道发生了什么,为什么以及要修改什么来修复它。但不是。

所以我有一个70k的HTML文件转换成PDF。它需要以下php.ini设置:pcre.backtrack_limit = 2000000; #可能比我需要的还多,但没关系

memory_limit = 1024M; #yes,一千兆字节 ; 和

max_execution_time = 600; #yes,10分钟。

现在精明的读者可能已经注意到我的HTML文件小于100k。我可以猜到为什么我遇到这个问题的唯一原因是html2pdf转换为xhtml作为过程的一部分。也许这让我过去了(虽然近50%的膨胀看起来很奇怪)。无论如何,上述工作都有效。

现在,html2pdf是一种资源匮乏。我的70k文件需要大约5分钟和至少500-600M的RAM来创建35页的PDF文件。不幸的是,实时下载速度不够快(到目前为止)并且内存使用率使内存使用率大约为1000比1(700k文件的RAM为600M),这完全是荒谬的。

不幸的是,这是我提出的最好的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值