Voglio generare file pdf da html usando Python + Flask. Per fare questo, io uso xhtml2pdf. Ecco il mio codice:Converti html in pdf usando 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 questo file di codice viene generato al volo. MA! xhtml2pdf non supporta molti stili nei CSS, a causa di questo grosso problema per contrassegnare correttamente la pagina. Ho trovato un altro strumento (wkhtmltopdf). Ma quando ho scritto qualcosa del tipo: errore
pdf = StringIO()
data = render_template('cvTemplate1.html', user=user)
WKhtmlToPdf(data.encode('utf-8'), pdf)
return pdf
è stata sollevata:
AttributeError: 'cStringIO.StringO' object has no attribute 'rfind'
E la mia domanda è come convertire HTML a PDF utilizzando wkhtmltopdf (con la generazione di file al volo) nel pallone?
Grazie in anticipo per le vostre risposte.
Ok.Questo codice funziona bene (excludind problemi con l'installazione wkhtmltopdf): rendered_template = render_template ('template.html', user = utente) rendered_template = rendered_template.encode ('utf-8') pdf = pdfkit.from_string (rendered_template, False, css = './static/styles.css') return make_response (pdf) Grazie! –