Ich möchte PDF-Datei aus HTML mit Python + Flask generieren. Um dies zu tun, verwende ich xhtml2pdf. Hier ist mein Code:Konvertieren von HTML in PDF mit Python/Flask
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
In dieser Codedatei wird im laufenden Betrieb erzeugt. ABER! xhtml2pdf unterstützt nicht viele Stile in CSS, wegen dieses großen Problems, die Seite richtig zu markieren. Ich habe ein anderes Instrument gefunden (wkhtmltopdf). Aber als ich schrieb so etwas wie:
pdf = StringIO()
data = render_template('cvTemplate1.html', user=user)
WKhtmlToPdf(data.encode('utf-8'), pdf)
return pdf
wurde angehoben Fehler:
AttributeError: 'cStringIO.StringO' object has no attribute 'rfind'
Und meine Frage ist, wie HTML in PDF konvertieren wkhtmltopdf Verwendung (mit on the fly-Datei zu erzeugen) in Flask?
Vielen Dank im Voraus für Ihre Antworten.
Ok.Dieser Code funktioniert einwandfrei (ausgenommen Probleme mit install wkhtmltopdf): gerenderte_template = render_template ('template.html', user = benutzer) gerenderte_template = gerenderte_template.encode ('utf-8') pdf = pdfkit.from_string (gerenderte_vorlage, Falsch, css = './static/styles.css') zurückgeben make_response (pdf) Danke! –