[reportlab教程](2) – 简单的文档模板的示例
2013-05-07 18:44
1061 查看
在前一篇我们已经知道大概 ReportLab 的处理过程,下面我们进入如何输出简单的文档。如果你看到用户手册,你会发现我跳过了许多的东西。是的,因为我认为那些与我们的目标暂时没有关系,许多东西更基础,而且是侧重于如何使用绘制的方法来画东西,而不是如何将文档转变为 PDF 文件。
ReportLab 为了方便生成文档提供了一种叫PLATYPUS(Page Layout and Typography
Using Scripts)的一系列的模板类,它用于控制文档的布局,可以让我们不用关心具体的坐标,绘制命令,甚至分页的处理,而将注意力集中在布局与内容上。
下面是一个应该算是最简单的生成Hello, ReportLab的例子吧。
from reportlab.platypus import Paragraph, SimpleDocTemplate
from reportlab.lib.styles import getSampleStyleSheet
stylesheet=getSampleStyleSheet()
normalStyle = stylesheet['Normal']
story = []
story.append(Paragraph("Hello, ReportLab", normalStyle))
doc = SimpleDocTemplate(‘hello.pdf’)
doc.build(story)
代码要比上一个多几行,但理解并不困难。
第1行我们导入Paragraph和SimpleDocTemplate类。Paragraph是用于生成文本段落的。SimpleDocTemplate是文档布局模板。
第2行导入将要用在Paragraph中的样式。也就是说ReportLab已经为我们预先定义了一些样式,如标准,标题1,标题2,黑体等等,用于生成特殊效果。与Word中的样式有些象。
第3行是得到样式集。
第4行是得到标准样式,它将用在Paragraph的生成中。
第5行是生成一个空列表。这里叫story,在用户手册中你会看到这个单词。它将用来存储象段落这样的对象,其它的还可以是图片等。而这些东西是有顺序的,因此使用了list来保存。因此在用户手册中看到这个单词不要以为是什么特别的对象。
第6行生成我们期待的"Hello, ReportLab"段落,并且它的样式是普通。将生成的结果放在story中。
第7行创建SimpleDocTemplate对象,指定将要生成的文件名。
第8行执行文档模板的build方法最终生成文件。所以有文档模板类都有build方法。
从上面的例子可以看到通过文档模板及样式可以让我们方便的创建面向对象的应用,而不用再关心坐标、绘制命令等底层的东西,从而可以方便我们的文档生成。打开hello.pdf看一看效果吧。这回就象是真正的文档,"Hello, ReportLab"放在上面了。
转自:http://blog.donews.com/limodou/archive/2005/08/21/520122.aspx
ReportLab 为了方便生成文档提供了一种叫PLATYPUS(Page Layout and Typography
Using Scripts)的一系列的模板类,它用于控制文档的布局,可以让我们不用关心具体的坐标,绘制命令,甚至分页的处理,而将注意力集中在布局与内容上。
下面是一个应该算是最简单的生成Hello, ReportLab的例子吧。
from reportlab.platypus import Paragraph, SimpleDocTemplate
from reportlab.lib.styles import getSampleStyleSheet
stylesheet=getSampleStyleSheet()
normalStyle = stylesheet['Normal']
story = []
story.append(Paragraph("Hello, ReportLab", normalStyle))
doc = SimpleDocTemplate(‘hello.pdf’)
doc.build(story)
代码要比上一个多几行,但理解并不困难。
第1行我们导入Paragraph和SimpleDocTemplate类。Paragraph是用于生成文本段落的。SimpleDocTemplate是文档布局模板。
第2行导入将要用在Paragraph中的样式。也就是说ReportLab已经为我们预先定义了一些样式,如标准,标题1,标题2,黑体等等,用于生成特殊效果。与Word中的样式有些象。
第3行是得到样式集。
第4行是得到标准样式,它将用在Paragraph的生成中。
第5行是生成一个空列表。这里叫story,在用户手册中你会看到这个单词。它将用来存储象段落这样的对象,其它的还可以是图片等。而这些东西是有顺序的,因此使用了list来保存。因此在用户手册中看到这个单词不要以为是什么特别的对象。
第6行生成我们期待的"Hello, ReportLab"段落,并且它的样式是普通。将生成的结果放在story中。
第7行创建SimpleDocTemplate对象,指定将要生成的文件名。
第8行执行文档模板的build方法最终生成文件。所以有文档模板类都有build方法。
从上面的例子可以看到通过文档模板及样式可以让我们方便的创建面向对象的应用,而不用再关心坐标、绘制命令等底层的东西,从而可以方便我们的文档生成。打开hello.pdf看一看效果吧。这回就象是真正的文档,"Hello, ReportLab"放在上面了。
转自:http://blog.donews.com/limodou/archive/2005/08/21/520122.aspx
相关文章推荐
- Bottle文档最新翻译版-1.1一个简单的小教程
- C#编程简单实现生成PDF文档的方法示例
- 10-Nancy文档教程——超级简单的视图引擎
- 【GLSL教程】(四)shder的简单示例
- 使用Python编写简单的画图板程序的示例教程
- ASP.NET中的模板引擎Nvelocity简单示例
- JSP+Servlet+mysql简单示例【图文教程】
- Python简单读写Xls格式文档的方法示例
- 一个超级简单的HTML模板框架源代码以及使用示例
- 【GLSL教程】(四)shder的简单示例
- 一个LaTeX 中文文档的简单而实用的模板
- TensorFlow在Win10上的安装教程和简单示例
- 初识Java模板引擎Beetl之简单示例
- C++网站开发MVC框架TreeFrog Framework教程——2.简单示例
- Kurento应用开发指南(以Kurento 5.0为模板) 之二:示例教程helloworld
- 模板引擎freemarker的简单使用教程
- 【GLSL教程】(四)shder的简单示例
- py2exe使用教程(一)——简单的示例
- 模板引擎freemarker的简单使用教程
- zblog模板修改简单教程