我们将尝试通过ReportLab复制该文档的布局。
您将创建的代码将支持基于XML数据文件中的数据量生成多页报告。 让我们看看如何!
通常,客户端会给您一个数据文件以及他们希望您从该文件生成的输出。 有时,您将需要设计自己的规范以供客户端使用,但我很少遇到这种情况。 接收数据文件和报告时,要做的第一件事是确定各种数据在报告中的位置。 在这种情况下,这些片段将在XML标签中,因此它们实际上将被标记。 这使事情变得容易得多,尤其是在XML具有良好标签名称的情况下。 固定宽度的数据文件更加困难,因为它们没有命名字段,您可以一目了然。
一旦确定了现有文档中的所有内容,就可以开始创建一些代码了。 每个开发人员都是不同的。 您可以从此时开始为XML编写解析器开始。 或者,您可以尝试使用一些硬编码的值来布局文档。 解析器和布局代码应该位于单独的模块中,因此,首先完成哪种功能并不重要。
让我们开始设计报告,方法是创建一个可以使用的基类。 我们将列出一些我们认为也将需要的方法。 将以下代码保存到名为eob.py的文件中:
在这里,我们创建一些格式化的文本并将其添加到在画布上固定位置绘制的段落中。 然后,我们创建更多文本,将其添加到第二段中并进行绘制。 不要忘记更新main()方法来调用您的create_header方法:
def main(pdf_file): '''''' eob = EOB(pdf_file) eob.create_header() eob.save()将此代码另存为eob2.py,然后运行脚本。 如果一切正常,您应该得到一个如下所示的PDF:
详情参阅http://viadean.com/python_reportlab_pdf.html