对虾可以用链接生成PDF吗?

问题描述:

我需要在Rails应用程序中的ruby中将链接嵌入到生成的pdf中。有没有办法与虾做这个?对虾可以用链接生成PDF吗?

读这个事实证明,虾格式是一段时间的答案,但0.7.x打破了这一点。

对虾格式使用link_annotate(rect, options={})函数来创建链接。需要传递哪些选项才能在PDF中创建链接?

编辑:
我希望看到这样做的代码示例,如果任何人有一个。

+0

这将是简单得多使用http:/ /princexml.com/ 不可否认的是一个专有产品,虽然演示使用就好。 – hendry 2010-02-23 15:09:19

如果您正试图创建一个链接到外部网页(http://google.com),比如你可以使用以下,从页面的左下角放置一个链接是100×100,并放置在5,5 ,带有1px边框:

pdf.link_annotation([100, 100, 5, 5], :Border => [0,0,1], :A => { :Type => :Action, :S => :URI, :URI => Prawn::LiteralString.new("http://google.com") }) 

Prawn Format将解析传递给pdf.text方法的文本并查找html标签。然后,它会使用正则表达式来解析目标文本和链接文本,最后创建一个类似上面的链接,并带有一个边框(第一个参数),以适应标签内的文本。如果没有虾格式,我不确定你是如何实现这一点的。但是,您可以使用link_annotation创建链接。

+0

你对位置参数的解释是错误的。[100,100,5,5]的正确含义是[rightEdgeX,bottomEdgeY,leftEdgeX,topEdgeY]。尽管这不应该是有效的,但它会按照您的预期打印出一个框。但试试[100,100,100,100]并不打印预期结果。尝试和测试。这很奇怪,但这些信息不易获取,即使在PDF规范中也没有。http://partners.adobe.com/public/developer/en/pdf/PDFReference.pdf – Cristian 2013-04-03 15:06:20

+0

对于'prawn 1.0.0',我使用这个' link_annotation([100,100,5,5],::Border => [0,0,1],:A => {:Type =>:Action,:S =>:URI,:URI => PDF :: Core :: LiteralString.new(“http://google.com”)})' – Selvamani 2014-05-22 14:56:24

作为对虾0.7的,对虾格式是 完全不支持,并将与虾0.7+版本不 工作。随时 免费叉和修复,当然 - 虾格式的GitHub上的网页

另一种选择是使用内置的低级别的注解支持虾的: http://prawn.majesticseacreature.com/docs/prawn-core/classes/Prawn/Document/Annotations.html#M000158

继承人的方法:

link_annotation(RECT,选项= {})

用于创建链接01的一种简便方法注释。矩形必须是一个 四个数字的数组,描述注释的边界 。选项哈希 应该包括两种:目的地 (描述了目标位置, 通常作为已经记录在文档的Dests 树 字符串),或:A(描述到 行动上点击链接进行)或:PA (用于描述要链接到的URL)。

+0

你知道如何使用这个link_annotation函数吗?如果是这样,一个例子会很有用。 – lillq 2010-02-19 21:33:12

我知道这是一个老问题,但对于那些在它仍然磕磕绊绊,在虾的当前版本,你可以使用内嵌格式是这样的:

pdf.text "Website: <link href='http://www.*.com'>*</link>", :inline_format => true