Reportlab:Platypus有可能有内部链接吗?

时间:2012-12-16 04:24:01

标签: python reportlab platypus

我知道我可以在内部链接画布,但我的整个文档都是用Platypus设置的。 Platypus支持内部链接吗?如果没有,那么迁移到画布有多难?

提前致谢!

2 个答案:

答案 0 :(得分:3)

您可以使用段内标记来创建锚点(<a>标记)和链接(<link>标记),如 6.3段内标记部分所述( ReportLab 2.6 User Manual PDF的第6章,第72页),其中还包含以下示例:

This <a href="#MYANCHOR" color="blue">is a link to</a> an
anchor tag ie <a name="MYANCHOR"/><font color="green">here</font>.
This <link href="#MYANCHOR" color="blue" fontName="Helvetica">is
another link to</link> the same anchor tag.

答案 1 :(得分:0)

https://www.blog.pythonlibrary.org/2014/03/10/reportlab-how-to-create-custom-flowables/启发的方法。

创建一个继承自Flowables的自定义类,可以添加到“故事”中

class flowable_bookmark(Flowable):
    def __init__(self, x=0, y=0, width=10, height=10, bookmark_name = "", text=""):
        Flowable.__init__(self)
        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.bookmark_name = bookmark_name
        self.text = text

    def draw(self):
        self.canv.drawString(self.x, self.y, self.text)
        self.canv.bookmarkPage(self.bookmark_name)

用法:

my_anchor = flowable_bookmark("MYANCHOR", text=" ")
self.story.append(my_anchor)