[reportlab教程](1) – 第一个Hello, reportlab的例子

这几天都在学习 ReportLab 这个优秀的生成 PDF 的软件包,特别是它的使用手册也都是使用自身的模块生成的,效果很让我满意,因此这段时间也许会把精力放在 PDF 文档生成上面。因此也希望写一个入门的教程方便大家同我一起学习。这就是写本教程的起因。由于有些东西是边学边写很可能会有错误,希望大家帮助我改正。那么学习的目的就是希望可以写出象 ReportLab 的用户手册一样效果的文档,并且希望尽可能的方便。

安装很简单,大家只要下载最新的 1.20 包即可。如果需要处理更多的图像格式还应该下载 PIL 软件包。这块就不细说了。

那么下面开始我们的学习,首先还是从写一个最简单的Hello, World开始,当然这里把Word改为 reportlab 了。

先看代码吧。

from reportlab.pdfgen import canvas
def hello(c):
    c.drawString(100,100,"Hello, ReportLab")
c = canvas.Canvas("hello.pdf")
hello(c)
c.showPage()
c.save()

这段代码是从用户手册改造而来。它的运行结果就是在你的当前目录生成一个hello.pdf的文件,打开它你会看到只有一页的内容,而"Hello, ReportLab"是显示在页面的左下角的。下面解释一下。

使用 ReportLab 来生成 PDF 你可以认为就象是在画图一样,因此第一行从pdfgen中导入了canvas,准备开始绘画。

hello方法是简单地调用Canvas的方法在指定的起始坐标来绘制文本。要注意,在 ReportLab 中坐标的原点缺省是在页面的左下角。因此最后的效果是在页面的左下角。这一点要注意。

第4行生成一个Canvas对象,它指定一个文件名,那么最终的结果将存放在这个文件中。在Canvas的构造方法中还有一些缺省值,比如纸张的大小缺省为A4纸等,现在我们不去关心它,一切从最简单开始。

第6行可以产生一个分页。但由于后面没有更多的输出了,因此它并不起作用。你可以在它的后面再加一个hello(c)的语句,看一看是不是变成两页了。

最后一行很重要,它会将内容保存到文件中。因此如果忘记掉用了,你什么也得不到。

这个例子很简单,但你也许已经注意到了,如果我想生成的是长篇的文档,让我象画画一样来生成不是太难了吗?的确是这样,但这里只是基本的介绍一下使用,ReportLab 已经为了想好了,它有更方便的东西供你使用,可以让你从一个更高的起点开始。但是需要注意,一些相对低层的东西可以实现一些绘图之类的东西,在你的 PDF 上作画也是一个很有趣的事情。

下一篇我将介绍使用文档布局的一个最简单的例子。

转自: http://blog.donews.com/limodou/archive/2005/08/21/520059.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值