使用 Python/Flask 将 html 转换为 pdf

新手上路,请多包涵

我想使用 Python + Flask 从 html 生成 pdf 文件。为此,我使用 xhtml2pdf。这是我的代码:

 def main():
    pdf = StringIO()
    pdf = create_pdf(render_template('cvTemplate.html', user=user))
    pdf_out = pdf.getvalue()
    response = make_response(pdf_out)
    return response

def create_pdf(pdf_data):
    pdf = StringIO()
    pisa.CreatePDF(StringIO(pdf_data.encode('utf-8')), pdf)
    return pdf

在此代码文件中是动态生成的。但! xhtml2pdf 不支持 CSS 中的许多样式,因为正确标记页面存在这个大问题。我找到了另一种工具(wkhtmltopdf)。但是当我写下类似的东西时:

 pdf = StringIO()
data = render_template('cvTemplate1.html', user=user)
WKhtmlToPdf(data.encode('utf-8'), pdf)
return pdf

引发错误:

 AttributeError: 'cStringIO.StringO' object has no attribute 'rfind'

我的问题是如何在 Flask 中使用 wkhtmltopdf(动态生成文件)将 html 转换为 pdf?

预先感谢您的回答。

原文由 Dmitry_Mahrachev 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

您是否尝试过使用 WeasyPrint 的 Flask- WeasyPrint ?他们的网站上有很好的例子,所以我不在这里复制它们。

原文由 chfw 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题