Python Pisa HTML2PDF
官方网站:
django reportlab: http://docs.djangoproject.com/en/dev/howto/outputting-pdf/
pisa: http://pypi.python.org/pypi/pisa/3.0.10
Pisa Views 代码:
########PDF##########################################
#Doc
#http://www.20seven.org/journal/2008/11/pdf-generation-with-pisa-in-django.html
#http://go3.daili39.com/browse.php?u=025a56434191163d635T2k4dlltRjZZV0Z5TG14aGRXNWphSEJoWkM1dVpYUXZKVGRGY0dGelkyRnNMV0poWTJndkpUSkNhblZ1YXk5d2FYTmhMMlpwYkdWekwyaGxZV1FsTTBFdmNHbHpZVE12&b=1
#http://pypi.python.org/pypi/pisa/3.0.27
#安装依赖
#easy_install reportlab
#easy_install html5lib
#返回PDF
def pdf(request):
html = 0
if html:
return render_to_response('dfiles/report.html', {
'username' : " 柳争 ","content":"AA"* 20
}, context_instance=RequestContext(request))
else:
return write_pdf('dfiles/report.html',{
'pagesize' : 'A4',
'article' : "LIUZHEBG","content":"AA"* 20})
#生成PDF
def write_pdf(template_src, context_dict):
template = get_template(template_src)
context = Context(context_dict)
html = template.render(context)
result = StringIO.StringIO()
#如果需要访问远程资源需要将远程资源读到本地,作为临时文件保存
#读取方法:pisa.pisaLinkLoader(url).getFileName
pdf = pisa.pisaDocument(StringIO.StringIO(
html.encode("UTF-8")), result,link_callback = pisa.pisaLinkLoader(url).getFileName)
#生成PDF
if not pdf.err:
return http.HttpResponse(result.getvalue(), \
mimetype='application/pdf')
else:
return http.HttpResponse('error')
#获得本地资源
def fetch_resources(uri, rel):
path = os.path.join(settings.MEDIA_ROOT,uri.replace(settings.MEDIA_URL, ""))
return path
Pisa中文问题完美解决方案:
将以下几行加入你的 Views 文件
#########Set FONT (微软雅黑)#################
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
pdfmetrics.registerFont(TTFont('msyh', 'path_to_your_font/msyh.ttf'))
from sx.pisa3 import pisa_default
pisa_default.DEFAULT_FONT["helvetica"]="msyh"
其他方式:
Pisa 中文问题:
1. 将 pisa/sx/pisa3/pisa_default.py 文件中的
#"helvetica": "Helvetica",
"helvetica": "msyh", 替换。
2. 在 pisa/sx/pisa3/__init__.py 中添加如下代码片段:
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
reportlab.rl_config.warnOnMissingFontGlyphs = 0
pdfmetrics.registerFont(TTFont('msyh', 'path_to_your_font\msyh.ttf'))
3. 接下来运行程序就ok了。
分享到:
相关推荐
PISA评价体系.pdf
PISA测试题例举.pdf
基于教育数据挖掘的“探索和理解”问题解决过程研究——以PISA(2012)新加坡、日本、中国上海Log数据为例.pdf
PISA2015信息通信技术使用问卷调查及启示.pdf
能力测试题库的建构——来自PISA的启示
PISA 2021信息与通信技术测评框架探析及启示.pdf
PISA数学试题
人民银行 PISA 系统指标分析 基于民生、宁波等商业银行业务系统
PISA背景问卷评价系统的分析与建议——对“PISA数学之旅”APP的研发的探索.pdf
下载自github
(1) 支付信息统计分析系统(Payment Information Statistical Analysis,PISAS) (2) 支付信息统计分析系统采集客户端(PISA Data Collection System,PDCS)
new results from 2012 brazil PISA research
教育大数据背景下log数据挖掘与应用——以PISA(2012)中国区问题解决测验为例.pdf
艾雷斯最新发布低功耗PISA半长CPU卡.pdf
PISA科学试题.doc
pisa点送框架,布局完整。可添加命令完成点送系统
艾雷斯最新发布低功耗PISA半长CPU卡 (1).pdf
帮助学习金融WOSA/XFS协议,Linux/PISA有借鉴作用
PISA测试数学试题---副本.doc
广积科技推出支持Intel酷睿2双核的PISA CPU板卡——IB930.pdf