使用 wkhtmltopdf 将 HTML 转换为 PDF 失败

Conversion of HTML to PDF using wkhtmltopdf failed

对于设置 I 运行:

sudo apt-get install wkhtmltopdf
pip install pdfkit==0.6.1

现在,我正在尝试 运行 在云中的 VM 上执行以下代码:

import pdfkit
pdfkit.from_file("foo.html", "foo.pdf", options={"javascript-delay": 10000})

javascript-delay 参数是必需的,否则某些部分无法正确呈现。此命令在我的本地机器上运行良好,但在云中我收到以下错误消息:

wkhtmltopdf exited with non-zero code 1. error:
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
qt.qpa.screen: QXcbConnection: Could not connect to display
Could not connect to any X display.

知道如何修复此错误或关于将 .html 转换为 .pdf 的替代方法的想法吗?

经过大量试验和错误后,这是我添加到我的 Dockerfile 中以使其工作的内容:

RUN apt-get update && apt-get install -yq gdebi

RUN TEMP_DEB="$(mktemp).deb" \
  && wget -O "$TEMP_DEB" 'https://github.com/wkhtmltopdf/packaging/releases/download/0.12.1.4-2/wkhtmltox_0.12.1.4-2.bionic_amd64.deb' \
  && sudo apt install -yqf "$TEMP_DEB" \
  && rm -f "$TEMP_DEB"

所以基本上安装 gdebi 然后安装不同版本的 wkhtmltox