estoy tratando de generar un PDF a partir de plantilla utilizando este fragmento:¿Hay alguna manera de generar un pdf que contenga símbolos que no sean ascii con pisa de la plantilla 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')
Todos los símbolos no latinos no se muestran correctamente, la plantilla y la vista se guardan con codificación UTF-8.
He intentado guardar la vista como ANSI y luego como usuario unicode (html, "UTF-8"), pero arroja TypeError.
También pensé que tal vez es porque las fuentes predeterminadas de alguna manera no son compatibles con utf-8 por lo que de acuerdo con la documentación de pisa intenté establecer fontface en el cuerpo de la plantilla en la sección de estilo.
Eso todavía no dio ningún resultado.
¿Alguien tiene algunas ideas sobre cómo solucionar este problema?
después replaceing consiguió pdf completo de datos ilegibles, comprueba la solución, el método no difiere mucho de lo que yo uso, pero todavía probado, con html.encode ("ISO-8859-1") se throws: "'latin-1' códec no puede codificar el carácter u '\ ufeff' en la posición 0: ordinal no en el rango (256)" con codificación ("UTF-8") devuelve pdf pero igual que yo he recibido previamente: los símbolos que no son ascii aún no se representan correctamente. – mihailt
@mihailt ¿Has encontrado una solución? –
exactamente agregando esto: 'encoding = 'UTF-8'' resolvió mi problema con la codificación de caracteres polaco – andi