无法在无头服务器上使用 wkhtmltopdf 生成 PDF

Unable to generate PDF with wkhtmltopdf on a headless server

我有一个 HTML 文档,它使用 CSS 文件和大约一打由 matplotlib 生成的 PNG 文件。为了将此 HTML 文档转换为 PDF,我按照 here 所述的方式在 AWS EC2 Linux 实例上安装了 wkhtmltopdf

在命令行上,这有效

wkhtmltopdf http://www.google.com output.pdf

但是,以下 Python 代码段不起作用。

reportCss = pathlib.Path(os.path.join(cssDir, 'report.css'))
w3Css = pathlib.Path(os.path.join(cssDir, 'w3.css'))
#
options = {
    'page-size': 'A4',
    'dpi': 720,
    'margin-bottom': 5
}
css = [str(reportCss), str(w3Css)]
pdfkit.from_file(htmlFilePath, pdfFilePath, options=options, css=css)

我收到这个错误:

QPainter::begin(): Returned false
Traceback (most recent call last):
  File "dailyemail.py", line 55, in <module>
    main()
  File "dailyemail.py", line 44, in main
    pdfFileName = pdfgen.buildPdfDoc()
  File "/home/ubuntu/demo/py/pdfgen.py", line 58, in buildPdfDoc
    pdfkit.from_file(htmlFilePath, pdfFilePath, options=options, css=css)
  File "/home/ubuntu/.local/lib/python2.7/site-packages/pdfkit/api.py", line 49, in from_file
    return r.to_pdf(output_path)
  File "/home/ubuntu/.local/lib/python2.7/site-packages/pdfkit/pdfkit.py", line 181, in to_pdf
    '%s ' %(' '.join(args)),e)
TypeError: not enough arguments for format string

你能告诉我我遗漏了什么吗?

原来 PDF 文件夹不存在。错误消息是中间领先的。