我正在使用ReportLab创建很长的调查问卷,并且我需要创建如下文本
如果你没有过敏症,请转到168页
ReportLab是否提供了一些可以帮助我完成此引用任务的功能?
我知道这个问题可能需要一个两遍算法。在第一次遍历中,找到了页码。第二遍完成了文本,调整了对适当页面的引用。在这种情况下,ReportLab应用程序接口中有没有什么可以提供帮助的东西?
发布于 2012-10-12 04:08:11
最初的问题已经提出两年了,但我将冒险为其他人提供一个答案,因为可能会有搜索引擎提出这个问题:
Reportlab支持内部链接。报告实验室用户指南的相关部分[仅限PDF,可用here ]为...
支持内部超链接。有非常广泛的链接类型,目的地类型和事件,可以通过点击触发。目前,我们只支持从文档的一个部分跳转到另一个部分的基本功能,以及在跳转后控制窗口的缩放级别。bookmarkPage方法定义了一个目的地,它是跳转的终点...第4.2节
发布于 2018-12-06 07:05:00
下面是我是如何让它工作的:
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,然后转到您想要的目的地页面
https://stackoverflow.com/questions/3347704
复制相似问题