返回

如何在 Ubuntu 上轻松解决 WKHTMLTOPDF 安装错误?

Linux

如何修复 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 版本。