猿问

Django reportlab latin2编码

是否有以正确方式转换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

我尝试了几种编码技巧,但没有结果。


呼如林
浏览 164回答 2
2回答

缥缈止盈

我认为主要的问题是您使用的字体没有那些波兰字符。这段代码对我有用,并显示了您想要的字符:#!/usr/bin/python# -*- coding: utf-8 -*-from reportlab.pdfgen import canvasfrom reportlab.lib.pagesizes import letter, A4from reportlab.pdfbase import pdfmetricsfrom 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()如果要使用其他字体,则必须找到想要的字体,包括抛光字符。
随时随地看视频慕课网APP

相关分类

Python
我要回答