如何在 Ubuntu 上轻松解决 WKHTMLTOPDF 安装错误?
2024-03-02 13:45:49
如何修复 Ubuntu 上 WKHTMLTOPDF 的安装错误
问题概览
在将 WKHTMLTOPDF 从 Windows 移植到 Ubuntu 服务器后,发现页眉、页脚、目录和封面页等功能无法使用,并出现 "Error: This version of wkhtmltopdf is build against an unpatched version of QT, and does not support more then one input document." 的错误信息。
解决方案
1. 安装带 QT 补丁的 WKHTMLTOPDF
2. 检查安装完整性
使用命令 apt-cache policy wkhtmltopdf
验证 WKHTMLTOPDF 及其依赖项是否正确安装。
3. 更新 Qt WebKit
运行 sudo apt-get install --install-recommends libqt5webkit5-dev
更新 Qt WebKit。
4. 检查文件权限
确保 /usr/bin/wkhtmltopdf
和 /usr/bin/qconvert
具有可执行权限:
sudo chmod +x /usr/bin/wkhtmltopdf
sudo chmod +x /usr/bin/qconvert
5. 启用 PDF 封面页和目录
使用参数 --cover --toc
启用封面页和目录:
wkhtmltopdf --cover --toc my_document.html my_document.pdf
6. 禁用沙箱模式
使用命令 sudo setcap cap_ipc_lock=+ep /usr/bin/wkhtmltopdf
禁用沙箱模式。
7. 重新启动系统
完成更改后重新启动系统以生效。
提示
- 使用最新的 WKHTMLTOPDF 版本。
- 检查参数语法是否正确。
- 查看 WKHTMLTOPDF 日志以获取更多信息。
常见问题解答
Q1:为什么在 Ubuntu 上无法使用页眉和页脚?
A1:这可能是因为 WKHTMLTOPDF 使用了 QT 中没有修补的版本。
Q2:如何更新 Qt WebKit?
A2:使用 sudo apt-get install --install-recommends libqt5webkit5-dev
命令。
Q3:如何启用 PDF 封面页?
A3:使用 --cover
参数。
Q4:如何禁用沙箱模式?
A4:使用命令 sudo setcap cap_ipc_lock=+ep /usr/bin/wkhtmltopdf
。
Q5:为什么安装后 WKHTMLTOPDF 无法正常工作?
A5:检查依赖项是否正确安装,并确保使用了带有 QT 补丁的 WKHTMLTOPDF 版本。