3

我正在使用 ReportLab 创建长问卷,我需要创建类似的文本

如果您没有过敏症,请转至第 168 页

ReportLab 是否提供了一些可以帮助我完成此引用任务的功能?

我知道这个问题可能需要一个两遍算法。在第一遍中,找到页码。第二遍完成文本,调整对适当页面的引用。ReportLab API 中有什么东西可以在这种情况下提供帮助吗?

4

2 回答 2

1

距离最初的问题已有两年了,但为了其他可能会从搜索引擎找到这个问题的人,我会冒险回答:

Reportlab 支持内部链接。报告实验室用户指南的相关部分 [仅限 PDF,可在此处获得] 内容为...

PDF 支持内部超链接。可以通过单击触发的链接类型、目标类型和事件范围非常广泛。目前我们只支持从文档的一个部分跳转到另一个部分的基本功能,以及在跳转后控制窗口的缩放级别。bookmarkPage 方法定义了一个目的地,它是跳转的终点……[第 4.2 节]

于 2012-10-11T20:08:11.347 回答
0

这是我如何使它工作的:

1、一定要这样注册目的地(名字是关键):

   st = ParagraphStyle('a style', alignment=TA_CENTER)
   from hashlib import sha1
   destination = sha1("Vintage".encode('utf-8')).hexdigest()
   b = Paragraph("My Page"+'<a name="%s"/>' % destination, st)
   b._bookmarkName = destination

   =====

2、稍后为您要点击的段落上的链接执行此操作(这里的重点是前面的刺耳符号#):

 contents = Paragraph(text="This <a href=#{} color=blue> Vintage </a>".format(destination), style=st)

在本段中,您单击 Vintage,然后转到您想要的目标页面

于 2018-12-05T23:04:59.957 回答