Sto cercando di generare un PDF da modello utilizzando questo frammento:C'è un modo per generare pdf contenente simboli non ascii con pisa dal template django?
def write_pdf(template_src, context_dict):
template = get_template(template_src)
context = Context(context_dict)
html = template.render(context)
result = StringIO.StringIO()
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), result)
if not pdf.err:
return http.HttpResponse(result.getvalue(), mimetype='application/pdf')
except Exception('PDF error')
Tutti i simboli non latini non vengono visualizzati correttamente, il modello e la vista sono salvati con codifica UTF-8.
Ho provato a salvare la vista come ANSI e quindi a utente unicode (html, "UTF-8"), ma lancia TypeError.
Inoltre ho pensato che forse è perché i font predefiniti in qualche modo non supportano UTF-8 così in base alla documentazione pisa ho cercato di impostare fontface nel corpo modello nella sezione stile.
Che ancora non ha dato risultati.
Qualcuno ha qualche idea su come risolvere questo problema?
dopo aver sostituito pdf pieno di dati illeggibili, controllato la soluzione, il metodo non differisce molto da quello che uso, ma l'ho ancora testato, con html.encode ("ISO-8859-1") gira: Il codec "latin-1" non può codificare il carattere u '\ ufeff' in posizione 0: ordinale non compreso nell'intervallo (256) " con codifica (" UTF-8 ") restituisce pdf ma uguale a ho ottenuto in precedenza - i simboli non-ascii non sono ancora resi correttamente. – mihailt
@mihailt hai trovato una soluzione? –
aggiungendo esattamente questo: 'encoding = 'UTF-8'' ha risolto il mio problema con i caratteri di codifica dello smalto – andi