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了。
分享到:
相关推荐
Python中的`xhtml2pdf`库是一个非常实用的工具,它允许开发者将HTML和CSS内容转换为高质量的PDF文档。这个库广泛应用于自动化报告生成、网页保存为PDF、电子书制作等多个场景。以下是对`xhtml2pdf`的详细介绍以及与...
学习PISA相关资源可以帮助教师了解全球教育趋势,改进教学方法,以培养学生的批判性思维、问题解决能力和创新意识。对于学生来说,了解PISA评估的维度和标准,可以更好地自我评估和提升学习效果。 **压缩包子文件的...
在Python生态系统中,"pisa"的用途广泛,它可以用于生成报告、创建电子书、制作手册或者为网站提供PDF下载功能。由于其易于集成和使用,很多开发者都会选择"Pisa"来处理项目中的PDF生成任务。 当我们讨论"Pisa"时,...
PISA评价体系的主要目的是评定主要工业化国家与地区及一些发展中国家与地区15岁学生在多大程度上获得了在今后成人生活中所需要的广泛的阅读、数学、科学、问题解决等方面的知识与能力。该项目旨在通过三年一度的周期...
基于教育数据挖掘的“探索和理解”问题解决过程研究——以PISA(2012)新加坡、日本、中国上海Log数据为例.pdf
PISA2015信息通信技术使用问卷调查及启示.pdf
人民银行 PISA 系统指标分析 基于民生、宁波等商业银行业务系统
PISA 2021信息与通信技术测评框架探析及启示.pdf
《PISA背景问卷评价系统的分析与建议——对“PISA数学之旅”APP的研发的探索》这篇文章探讨了PISA(国际学生评估项目)背景问卷的重要性和其在教育领域的影响。PISA是一个由OECD(经济合作与发展组织)发起的全球性...
3. 骰子问题:骰子的相对面点数之和为7,根据这一规则可以推断出每个骰子的底面点数。例如,如果一面是1点,那么相对面就是6点,以此类推。 4. 身高问题:涉及数据处理和基本的数学运算。问题1通过平均身高变化计算...
【PISA测试题例举】 PISA(Program for International Student Assessment)是一项国际性的教育评估项目,旨在衡量15岁学生在阅读、数学和科学领域的素养。以下是对所给题目进行的详细解析: **问题1: 圆球** 题目...
【PiSa.rar_pisa】是一个压缩包文件,其中包含了名为"Pisa"的点送框架的相关源代码。这个框架主要用于构建点送系统,也就是通常所说的外卖配送系统。在IT行业中,这样的系统是电子商务和餐饮服务的重要组成部分,...
(1) 支付信息统计分析系统(Payment Information Statistical Analysis,PISAS) (2) 支付信息统计分析系统采集客户端(PISA Data Collection System,PDCS)
4. 科学素养和探究能力:PISA 科学试题旨在评估学生的科学素养和探究能力,包括识别科学问题、使用科学证据、科学地解释现象、识别科学兴趣和支持科学探究等。 本资源是一个非常有价值的科学试题,旨在考查学生的...
new results from 2012 brazil PISA research
本研究中主要使用了聚类和关系挖掘方法,来分析学生的行为模式、策略选择及问题解决能力。 四、log数据挖掘在问题解决过程中的应用 研究通过log数据挖掘发现,不同地区的学生在使用“有目的试误”策略的频率上存在...
这些试题体现了PISA测试的特点,即强调数学知识在现实问题中的应用,鼓励学生发展解决问题的策略和批判性思维。通过解决这些问题,学生不仅需要掌握基本的数学概念,还要学会如何在实际情境中灵活运用这些知识。
【PISA背景下的阅读策略】 PISA,全称为Programme for International Student Assessment,是由国际经济合作与发展组织(OECD)发起的一项国际性学生评估项目,旨在衡量15岁青少年在义务教育末期所具备的生活所需...
Linux/PISA(Platform for Integrated Secure Applications)是Linux操作系统针对金融自助设备的实现,它借鉴了WOSA/XFS的一些设计理念,以提供相同级别的安全性和兼容性。 WOSA/XFS协议的核心是将复杂的硬件操作...