por lo general aparece cuando leemos datos de otra fuente el cuál contiene datos en bytes, como latin-1, ANSI, estos se necesitan convertir a Unicode. Python provee tal conversión, por lo tanto la solución es inmediata.
En el ejemplo tenemos un texto guardado en ANSI, cuyo contenido es "Aquí un texto sin canción", en el que se produce un error al momento de dibujarlo en el canvas. Sin embargo, usando unicode(), todo se resuelve.
# -*- coding:utf-8 -*- import os from reportlab.lib.pagesizes import A4 from reportlab.pdfgen import canvas c=canvas.Canvas("test.pdf", pagesize = A4) archivo = open("texto en latin.txt", "r") for linea in archivo: linea = unicode(linea, 'latin-1') #Solucionamos el problema de codificación c.drawString(100, 700, linea.strip()) # strip quita caracteres en blanco c.showPage() c.save() os.system("test.pdf")
No hay comentarios:
Publicar un comentario