Python使用Reportlab处理PDF数据 - 自定义页眉和页脚

137 篇文章 16 订阅

有许多文档和报告要求您在首页或每页上都有页眉。 例如,如果您要为律师或法官生成报告,那么几乎可以肯定,所有页面上都需要合伙人信息。 在大多数医疗机构或医院中生成报告时也是如此。 他们的固定器必须以某种方式看起来。

大多数情况下,这些标头将包含以下字段:

  • 日期
  • 一个或多个人的名字(例如诊所中的所有医生)
  • 地址
  • 电话/传真
  • 网址
  • 商标

一些文档还有其他信息。 例如:

  • 文档编码
  • 页码
  • 页数与总页数
  • ID号

考虑到标题,实际上标题可以具有无限多个字段。 我能想到很多其他的东西。 只需打开一些来自您的金融机构或保险公司的邮件,您就会在标头中看到其他字段。 这种情况也适用于页脚。 但是页脚通常没有那么多字段。 他们大多数时候通常都有页码,尽管我看到其中有些包含某种联系信息。

本文,我们将学习如何对标头执行以下操作:

  • 创建一个通用的页眉/页脚模板
  • 添加页码
  • 添加页码与总页数
  • 添加徽标
  • 添加其他字段

此信息也将适用于页脚。 我们将创建几个可用于生成标题的模板。

天真的标题

在编写代码时,通常需要创建自己的可重用模块。 因此,让我们尝试使用我们的报告生成代码来做到这一点。 在本文,我们将创建一个简单的标头类,并将这个模块称为header.py。 这是代码:

代码略

现在,我们只需要编写一些可以使用我们的新标头模块的代码即可。 创建一个名为main.py的新文件,并添加以下代码:

代码略

这些代码所做的全部工作就是从标头模块导入Header类,创建它的实例,然后将其添加到我们的flowable列表中,然后生成报告。 运行第二个示例的结果如下所示:

看起来不错,但不是真正的标题。 它只是可流动的。 使用此方法创建标头时,每次创建新页面时都必须手动添加标头,这可能难以即时计算。 因此,让我们学习如何使这项工作正确无误!

每页放置页眉

生成文档时,您有几个额外的特殊参数,可用于控制第一页上以及后续所有页上的内容。 这些参数称为onFirstPage和onLaterPages。 您可以利用这些知识来制作自定义的页眉和页脚,然后只需调整文档模板的边距即可解决这些问题。

首先创建一个新的标头模块,我们将其称为header2.py。 它应该是这样的:

代码略

此代码仅需要两次导入,在这里我们可以获取可用于Paragraphs和Paragraph类本身的示例样式表。 然后,我们创建标题函数,该函数将画布和DocumentTemplate对象作为其唯一参数。 接下来,我们获取文档的宽度和高度,并创建示例样式表。 该功能的其余部分仅使用绝对定位来获取所需的各种文本。

详情参阅 - 亚图跨际

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值