我正在使用ReportLab创建长问卷,我需要创建像
这样的文本如果您没有过敏症,请继续第168页
ReportLab是否提供了一些可以帮助我完成此引用任务的功能?
我知道这个问题可能需要双通算法。在第一遍中,找到页面的数字。第二遍完成文本,调整对正确页面的引用。 ReportLab API中有什么东西可以帮助在这种情况下?
答案 0 :(得分:1)
距离最初的问题已经过去了两年,但我会为了其他可能从搜索引擎提出这个问题的人而冒险回答:
Reportlab支持内部链接。报告实验室用户指南的相关部分[仅限PDF,可用here]读取......
PDF支持内部超链接。可以通过单击触发各种链接类型,目标类型和事件。目前我们只支持从文档的一个部分跳转到另一个部分的基本功能,并在跳转后控制窗口的缩放级别。 bookmarkPage方法定义了一个目标,它是跳转的终点... [第4.2节]
答案 1 :(得分: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,然后根据需要转到目标页面