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

时间:2018-04-17 14:38:38

标签: python html wkhtmltopdf pdfkit

我有一个HTML文档,它使用CSS文件和从matplotlib生成的大约几个PNG文件。要将此HTML文档转换为PDF,我在AWS EC2 Linux实例上以here描述的方式安装了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

你能告诉我我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

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