在ReportLab中向canvas元素添加超链接的最简单方法是什么?

时间:2012-05-21 16:25:19

标签: python canvas hyperlink reportlab

我正在使用ReportLab使用Python制作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 个答案:

答案 0 :(得分:10)

在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/

答案 1 :(得分:0)

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