wkhtmltopdf以非零代码{0} django html退出到服务器上的pdf

时间:2015-08-20 04:38:33

标签: python django wkhtmltopdf html-to-pdf

我正在使用wkhtmltopdf将html转换为pdf。 但是我收到了一个错误

raise IOError("wkhtmltopdf exited with non-zero code {0}. error:\n{1}".format(exit_code, stderr.decode("utf-8")))
IOError: wkhtmltopdf exited with non-zero code 1. error:
xvfb-run: error: Xvfb failed to start

我的代码是:

    f = open('cover_page.html', 'w')
    cap_type = indi_user.cap_type
    message = """<html>
    <head></head>
    <body><h1 style="font-size:150px;margin-top: 450px;">%s</h1></body>
    </html>""" % (cap_type.encode('utf-8').strip())
    f.write(message)
    f.close()
    pdfkit.from_url('cover_page.html', 'cover_page.pdf')
    os.remove("cover_page.html")
    final_pdf_list.insert(0, 'cover_page.pdf')
    to_be_removed.append("cover_page.pdf")
    pypdftk.concat(final_pdf_list, str(destination))

我不知道我在那里做错了什么。

我尝试了一切,但仍然坚持同样的错误。

2 个答案:

答案 0 :(得分:1)

你安装了XVFB吗?如果不是,您应该由包管理器安装它,例如apt-get install xvfb。否则,请通过/tmp/xvfb-error.log文件获取特定的xvfb错误消息。

答案 1 :(得分:0)

wkhtmltopdf在X图形服务器的帮助下工作。 如果我们想在服务器中使用它,那么它将成为一个问题,这意味着它将无法工作。 为了使它在服务器中工作,我们需要安装一个X服务器(xvfb)。

sudo apt-get install xvfb

参考:https://learnbatta.com/blog/django-html-to-pdf-using-pdfkit-and-wkhtmltopdf-5/