21.4 初次实现
在初次实现中,我们将以元组列表的方式将这些数据添加到源代码中,以便轻松地使用它们。
下面演示了如何这样做:
data = [
# 其他数据
(2016, 03, 30.9, 31.9, 29.9),
(2016, 04, 30.5, 32.5, 28.5),
# Add more data here
]
完成这项工作后,来看看如何将数据转换为图形。
21.4.1 使用 ReportLab 绘图
ReportLab由很多部分组成,让你能够以多种方式生成输出。就生成PDF而言,最基本的模块是pdfgen,其中的Canvas类包含多个低级绘图方法。例如,要在名为c的Canvas上绘制直线,可调用方法c.line。
我们将使用更高级的图形框架( reportlab.graphics包及其子模块),它能让我们创建各种形状,将其添加到Drawing对象中,再将Drawing对象输出到PDF文件中。
代码清单21-1是一个示例程序,它在一个100点×100点的PDF图形中央绘制字符串"Hello,world!",如图21-1所示。这个程序的基本结构如下:创建一个指定尺寸的Drawing对象,再创建具有指定属性的图形元素(这里是一个String对象),然后将图形元素添加到Drawing对象中。最后,以PDF格式渲染Drawing对象,并将结果保存到文件中。
上述对renderPDF.drawToFile的调用将PDF文件保存到当前目录下的文件hello.pdf中。
构造函数String的主要参数包括x坐标和y坐标以及文本。另外,你还可指定各种属性,如字号、颜色等。在这里,我设置了参数textAnchor,它指定要将字符串的哪部分放在坐标指定的位置。
领取专属 10元无门槛券
私享最新 技术干货