标签:usr pdf gis base 字体库 原因 enc load gen
编码问题
1.读取文件乱码
原因:python2.7默认使用unicode编码读取文件
方法:在文件头部设置编码#coding=utf-8
2.写入文件乱码
原因:python2.7默认使用unicode编码
方法:设置默认输出编码为utf-8即可
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8‘)
3.在使用reportlab.pdfgen 中的画布 canvas输出乱码
原因:reportlab中没有中文字体
方法:引入中文字体
from reportlab.pdfgen import canvas
from reportlab.pdfgen.canvas import Canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
#字体一:CID字体(不推荐)
pdfmetrics.registerFont(UnicodeCIDFont(‘STSong-Light‘))
from reportlab.pdfbase.ttfonts import TTFont
#字体二:linux系统字体(推荐)
import os
from reportlab.pdfbase import pdfmetrics,ttfonts
pdfmetrics.registerFont(ttfonts.TTFont(‘zenhei‘,os.path.join("wqy-zenhei", ‘wqy-zenhei.ttc‘)))
pdfmetrics.registerFont(ttfonts.TTFont(‘microhei‘,os.path.join("wqy-microhei", ‘wqy-microhei.ttc‘)))
canvas.Canvas("helloworld.pdf")
Canvas.setFont(‘zenhei‘,12)
字体一:STSong-Light宋体是CID字体,在本方案处理中文没有问题但是处理英文字体会紧贴在一起,非常不美观。
字体二:是自己下载的字体,从linux字体库/usr/share/fonts/下引入的os.path.join("字体文件夹", ‘字体文件名‘)
zenhei文泉驿正黑(推荐)
microhei文泉驿微米黑,换行会出现一些特殊符号像两个完全闭合的中括号[]
标签:usr pdf gis base 字体库 原因 enc load gen
原文地址:http://www.cnblogs.com/plxm/p/7615027.html