跳转至

Appendix L: ReportLab 演示程序

reportlab/demos 的子目录中有许多可运行的示例, 展示了 reportlab 几乎所有方面的用法。

12.13 Odyssey

odyssey.py、dodyssey.py 和 fodyssey.py 这三个脚本都使用 odyssey.txt 文件 来生成 PDF 文档。附带的 odyssey.txt 较短;更长且更具挑战性的版本 可在 ftp://ftp.reportlab.com/odyssey.full.zip 找到。

Windows
cd reportlab\demos\odyssey
python odyssey.py
start odyssey.pdf

Linux
cd reportlab/demos/odyssey
python odyssey.py
acrord odyssey.pdf

odyssey.py 脚本展示了简单的格式化。它运行速度相当快, 但它所做的只是收集文本并将其强制放到画布页面上。它根本不进行段落操作, 所以您会看到 XML < & > 标签。

fodyssey.py 和 dodyssey.py 脚本处理段落格式化,因此您可以看到 颜色变化等效果。这两个脚本都使用文档模板类,dodyssey.py 脚本还展示了 双栏布局的能力,并使用了多个页面模板。

12.14 标准字体和颜色

reportlab/demos/stdfonts 目录中,stdfonts.py 脚本可以用来 展示 ReportLab 的标准字体。使用以下命令运行脚本:

cd reportlab\demos\stdfonts
python stdfonts.py

这将生成两个 PDF 文档,StandardFonts_MacRoman.pdf 和 StandardFonts_WinAnsi.pdf,分别展示了两种最常见的内置字体编码。

reportlab/demos/colors 中的 colortest.py 脚本演示了 reportlab 设置和使用颜色的不同方式。

尝试运行该脚本并查看输出文档 colortest.pdf。它展示了不同的颜色空间 以及 reportlab.lib.colors 模块中命名的大量颜色。

12.15 Py2pdf

Dinu Gherman 贡献了这个实用的脚本,它使用 reportlab 从 Python 脚本 生成美观的带语法高亮的 PDF 文档,包括类、方法和函数的书签。 要获取主脚本的美观版本,请尝试:

cd reportlab/demos/py2pdf
python py2pdf.py py2pdf.py
acrord py2pdf.pdf

也就是说,我们使用 py2pdf 生成了 py2pdf.py 的美观版本, 输出文档具有相同的根名和 .pdf 扩展名。

py2pdf.py 脚本有许多选项,超出了本简单介绍的范围; 请参阅脚本开头的注释。

12.16 Gadflypaper

reportlab/demos/gadflypaper 中的 Python 脚本 gfe.py 使用内联式的 文档准备方式。该脚本几乎完全由 Aaron Watters 编写,生成了一个描述 Aaron 的 gadfly Python 内存数据库的文档。要生成该文档,请使用:

cd reportlab\gadflypaper
python gfe.py
start gfe.pdf

PDF 文档中的所有内容都是由脚本生成的,这就是为什么这是一种内联式的 文档生产方式。因此,要生成一个标题后跟一些文本,脚本使用 headerp 函数,它们接受一些文本并追加到全局 story 列表中。

header("Conclusion")

p("""The revamped query engine design in Gadfly 2 supports
..........
and integration.""")

12.17 Pythonpoint

Andy Robinson 不断改进 pythonpoint.py 脚本(位于 reportlab\demos\pythonpoint),使其成为一个非常实用的脚本。 它接受一个包含 XML 标记的输入文件,并使用 xmllib 风格的解析器 将标签映射为 PDF 幻灯片。在它自己的目录中运行时, pythonpoint.py 默认使用 pythonpoint.xml 文件作为输入, 并生成 pythonpoint.pdf,这就是 Pythonpoint 的文档! 您还可以用一篇较早的论文来查看它的效果:

cd reportlab\demos\pythonpoint
python pythonpoint.py monterey.xml
start monterey.pdf

Pythonpoint 不仅是自我文档化的,而且也展示了 reportlab 和 PDF 的功能。 它使用了 reportlab 的许多功能(文档模板、表格等)。 PDF 的高级功能如淡入效果和书签也得到了很好的展示。 使用 XML 文档的方式可以与 gadflypaper 演示的 内联 风格形成对比; 内容与格式完全分离。