是否有任何选项可以以正确的方式转换 latin2 字母?我需要给我的学校项目写一封波兰信。这是我如何生成 pdf 的一些代码
#!/usr/bin/python
# -*- utf-8 -*-
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter, A4
def GenerujPustyArkusz(c):
c.setFont("Times-Roman", 8)
c.drawString(450,750, u"Załącznik nr 2 do Regulaminu")
def test():
c = canvas.Canvas("test.pdf", pagesize=letter)
GenerujPustyArkusz(c)
c.showPage()
c.save()
test()
我明白了:
Za■■cznik nr 2 do Regulaminu
我尝试了几种编码技巧但没有结果。
最佳答案
我认为主要问题是您使用的字体没有那些波兰语字符。 此代码对我有用并显示了您想要的字符:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter, A4
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
def GenerujPustyArkusz(c):
pdfmetrics.registerFont(TTFont('Verdana', 'Verdana.ttf'))
c.setFont("Verdana", 8)
s = u"Załącznik nr 2 do Regulaminu"
c.drawString(450,750, s)
def test():
c = canvas.Canvas("test.pdf", pagesize=letter)
GenerujPustyArkusz(c)
c.showPage()
c.save()
test()
如果您想使用其他字体,您必须找到包含波兰语字符的字体。
希望对您有所帮助!
关于python - Django reportlab latin2 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17008469/