PDF中的相对文件链接(Reportlab)

时间:2014-01-24 11:22:20

标签: python pdf pdf-generation reportlab

是否可以链接到PDF文档中不是PDF文件的相关外部文档?

我特意想像excel电子表格。

在ReportLab中,我可以添加类似

的内容
Elements.append(Paragraph("<a href=\"pdf://linkedfile.pdf\">File</a>",style))

它将成功链接到我生成的PDF所在的文件夹中并打开linkedfile.pdf,但文档中没有提到除pdf以外的任何其他文件类型,显然xls://不起作用。

是否有人知道这是否是PDF文件的限制,出于安全原因而被阻止?或者这只是ReportLab不支持开箱的东西?可以通过扩展ReportLab类来实现吗?

感谢。

2 个答案:

答案 0 :(得分:1)

这就是我在reportlab中获取文件的相对链接的方式:

from reportlab.pdfgen import canvas
from reportlab.lib.units import inch

# Create a canvas and add a rectangle to it
c = canvas.Canvas("link_test.pdf")
c.translate(inch, 9 * inch)
c.rect(inch,inch,1*inch,1*inch, fill=1)

# example.xls is in the same directory as the pdf
c.linkURL(r'example.xls', (inch, inch, 2*inch, 2*inch), relative=1)
c.save()

我使用的是Adobe Reader 11.0.10.32。当我点击矩形时,我会收到一些警告,但是在点击&#34;允许&#34;之后文件会打开。和&#34;是&#34;。

答案 1 :(得分:0)

您是否尝试过使用 file:// 而不是 pdf:// ?我目前无法对此进行测试,可能依赖于您正在使用的pdf-viewer /文件管理器。