16

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に変換する方法ですか?

ご回答ありがとうございます。

4

4 に答える 4

10

WeasyPrintを使用するFlask-WeasyPrintを試しましたか? 彼らの Web サイトには良い例があるので、ここでは複製しません。

于 2015-01-27T12:29:59.023 に答える