有许多文档和报告要求您在首页或每页上都有页眉。 例如,如果您要为律师或法官生成报告,那么几乎可以肯定,所有页面上都需要合伙人信息。 在大多数医疗机构或医院中生成报告时也是如此。 他们的固定器必须以某种方式看起来。
大多数情况下,这些标头将包含以下字段:
- 日期
- 一个或多个人的名字(例如诊所中的所有医生)
- 地址
- 电话/传真
- 网址
- 商标
一些文档还有其他信息。 例如:
- 文档编码
- 页码
- 页数与总页数
- ID号
考虑到标题,实际上标题可以具有无限多个字段。 我能想到很多其他的东西。 只需打开一些来自您的金融机构或保险公司的邮件,您就会在标头中看到其他字段。 这种情况也适用于页脚。 但是页脚通常没有那么多字段。 他们大多数时候通常都有页码,尽管我看到其中有些包含某种联系信息。
本文,我们将学习如何对标头执行以下操作:
- 创建一个通用的页眉/页脚模板
- 添加页码
- 添加页码与总页数
- 添加徽标
- 添加其他字段
此信息也将适用于页脚。 我们将创建几个可用于生成标题的模板。
天真的标题
在编写代码时,通常需要创建自己的可重用模块。 因此,让我们尝试使用我们的报告生成代码来做到这一点。 在本文,我们将创建一个简单的标头类,并将这个模块称为header.py。 这是代码:
代码略
现在,我们只需要编写一些可以使用我们的新标头模块的代码即可。 创建一个名为main.py的新文件,并添加以下代码:
代码略
这些代码所做的全部工作就是从标头模块导入Header类,创建它的实例,然后将其添加到我们的flowable列表中,然后生成报告。 运行第二个示例的结果如下所示:
看起来不错,但不是真正的标题。 它只是可流动的。 使用此方法创建标头时,每次创建新页面时都必须手动添加标头,这可能难以即时计算。 因此,让我们学习如何使这项工作正确无误!
每页放置页眉
生成文档时,您有几个额外的特殊参数,可用于控制第一页上以及后续所有页上的内容。 这些参数称为onFirstPage和onLaterPages。 您可以利用这些知识来制作自定义的页眉和页脚,然后只需调整文档模板的边距即可解决这些问题。
首先创建一个新的标头模块,我们将其称为header2.py。 它应该是这样的:
代码略
此代码仅需要两次导入,在这里我们可以获取可用于Paragraphs和Paragraph类本身的示例样式表。 然后,我们创建标题函数,该函数将画布和DocumentTemplate对象作为其唯一参数。 接下来,我们获取文档的宽度和高度,并创建示例样式表。 该功能的其余部分仅使用绝对定位来获取所需的各种文本。
详情参阅 - 亚图跨际