为了账号安全,请及时绑定邮箱和手机立即绑定

Django reportlab latin2编码

Django reportlab latin2编码

呼如林 2021-03-23 21:23:42
是否有以正确方式转换latin2字母的选项?我需要给我学校项目的波兰信。这是我如何生成pdf的一些代码#!/usr/bin/python# -*- utf-8 -*-from reportlab.pdfgen import canvasfrom reportlab.lib.pagesizes import letter, A4def 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我尝试了几种编码技巧,但没有结果。
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

我认为主要的问题是您使用的字体没有那些波兰字符。这段代码对我有用,并显示了您想要的字符:


#!/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()

如果要使用其他字体,则必须找到想要的字体,包括抛光字符。


查看完整回答
反对 回复 2021-03-31
  • 2 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信