首页 文章

使用Python reportlab将非ASCII字符插入pdf

提问于
浏览
0

我的代码应该将文本插入到pdf模板中 . 变量文本是

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

首先,我创建一个空的pdf,然后创建一个Canvas实例,将该文件作为参数,然后将文本与 canvas_instance.drawString(10, 10, text.decode('utf-8') 合并并保存 . 我原来的pdf文件确实包含一个正确位置的文本 - 但我得到的是ASCII字符整齐的黑色方块而不是非ASCII字母 . 我已经尝试将字体设置为'Times-Bold'和'Helvetica',但它们似乎也不起作用 . 我的python文件中也有一个编码声明:

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

如何将文本插入pdf模板?

Python:2.7 libs:reportlab,pyPdf ubuntu 14

1 回答

  • 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'))
    

相关问题