【问题标题】:Referencing further pages with ReportLab使用 ReportLab 引用更多页面
【发布时间】:2010-07-27 20:32:52
【问题描述】:

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

的文本

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

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

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

【问题讨论】:

    标签: python reportlab


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      这是我如何使它工作的:

      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,然后转到您想要的目标页面

      【讨论】:

        猜你喜欢
        • 2013-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-14
        • 2020-04-09
        • 2013-09-30
        • 2010-12-22
        • 1970-01-01
        相关资源
        最近更新 更多