我是一个PHP开发人员,在我的一个项目中,我需要将一些HTML文档(约30到50页)转换为PDF文档。
我的搜索已经找到了以下可能的解决方案。其中有一些PHP库和一些命令行应用程序。每个都有自己的优点和缺点。
PHP库:
对于每个库,我有以下问题:
>需要很长时间(转换30个HTML页面超过五分钟)
>需要太多的资源(内存和时间)
(我在php.ini中设置以下参数:
max_execution_time = 600
memory_limit = 250M
但事情仍然不工作。)
>需要HTML网页格式正确(例如没有遗漏关闭标签)
所有这些工作,当我尝试转换简单的HTML文档(五个或更少的页面与小CSS)
命令行应用程序
与上述库相比,所有命令行应用程序都工作得非常快速,但是只有当我们直接在控制台上运行它们时。当我尝试使用他们在PHP与exec()或system(),他们给我错误。
以下是在PHP中运行命令行应用程序及其错误:
html2pdf:11380): Gtk-WARNING **: cannot open display: :0.0
No protocol specified
> wkhtmltopdf
Loading page: 10%
Loading page: 33%
Loading page: 100%
Waiting for redirect
Outputting pages
QPainter::begin(): Returned false
QPainter::begin(): Returned false
QPainter::save: Painter not active
QPainter::scale: Painter not active
QPainter::setRenderHint: Painter must be active to set rendering hints
QPainter::setBrush: Painter not active
QPainter::pen: Painter not active
QPainter::setPen: Painter not active
所以现在我在寻找帮助。任何人都可以回答:
哪个PHP库会在我的情况下工作?
为什么在命令行应用程序中出现这些错误?