2016-11-25 8 views
0

Мой код должен вставлять текст в шаблон pdf. Переменная текстВставка символов, отличных от ASCII, в pdf с Python reportlab

text = u"Gęślą JaźńZażółć" 

Во-первых, создать пустой PDF, то экземпляр Canvas с файлом в качестве параметра, а затем включить текст с canvas_instance.drawString(10, 10, text.decode('utf-8') и сохранить его. И мой оригинальный pdf-файл действительно содержит текст в правильном положении - но я получаю символы ASCII + аккуратные черные квадраты вместо букв, отличных от ASCII. Я пробовал устанавливать шрифт на «Times-Bold» и «Helvetica», но они тоже не работают. У меня есть заявление кодирования в моем файле питона тоже:

# -*- coding: utf-8 -*- 

Как бы я смог вставить текст в шаблон PDF?

Python: 2.7 ЛИЭС: ReportLab, pyPdf убунту 14

+0

Кажется, я должен использовать SetFont, чтобы установить шрифт какой-то шрифт с поддержкой польски , причина text = decode ('utf-8') слишком мало ... – fanny

ответ

1

на ОК TTF поддерживает польский решить эту проблему:

name = u"{} {}".format(unicode(mydata['firstname']), unicode(mydata['lastname'])) 
pdfmetrics.registerFont(TTFont('Theano', '<path>/TheanoOldStyle-Regular.ttf')) 

can.setFont('Theano', 16) 

can.drawString(175, 400, name.decode('utf-8'))