首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django报告实验室latin2编码

Django报告实验室latin2编码
EN

Stack Overflow用户
提问于 2013-06-09 17:58:13
回答 1查看 3.2K关注 0票数 7

有没有合适的方式转换latin2字母的选项?我需要给我的学校项目写一封波兰文。下面是我生成pdf的一些代码

代码语言:javascript
运行
复制
#!/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()

我得到了这个:

代码语言:javascript
运行
复制
Za■■cznik nr 2 do Regulaminu

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-09 23:53:30

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

代码语言:javascript
运行
复制
#!/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()

如果你想使用其他字体,你必须找到你想要的包含波兰语字符的字体。

我希望这能帮到你!

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17008469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档