如何在ReportLab的画布元素中添加超链接?

8
我正在使用Python中的ReportLab制作PDF文档。我想在画布上添加一个图形,并使该图形作为超链接。如何以最简单的方式使下面示例中的矩形链接到google.com?
from reportlab.pdfgen import canvas
from reportlab.lib.units import inch

c = canvas.Canvas("hello.pdf")

# move the origin up and to the left, draw square
c.translate(inch,9*inch)
# How do I make this rectangle link to google.com?
c.rect(inch,inch,1*inch,1*inch, fill=1)

c.showPage()
c.save()
2个回答

13

在 Canvas 上调用 linkURL

c.linkURL('http://google.com', (inch, inch, 2*inch, 2*inch), relative=1)

矩形是可点击区域,因此您需要将其与绘制的矩形匹配。 参数是两个坐标,分别为左下角和右上角的x,y

在这篇博客文章中可以查看更多示例:http://www.hoboes.com/Mimsy/hacks/adding-links-to-pdf/


很可能@MartjinPieters不知道其他两个答案所指出的问题。请参考Crebits的答案以获取修改后的方法。 - fatih_dur
1
@fatih_dur:感谢你提醒,我确实不知道其他帖子的存在。 - Martijn Pieters

0
为了补充Martijn的答案,linkURL使用“默认”坐标系绘制矩形,即从下到上/从左到右。由于默认画布使用自上而下的坐标系,建议您根据画布高度进行快速修复。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接