大虾可以生成带链接的PDF吗?
我需要将链接嵌入到 Ruby on Rails 应用程序中生成的 pdf 中。有没有办法用虾来做这个?
读到这篇文章后发现,prawn-format 曾一度是答案,但 0.7.x 打破了这一点。
prawn-format 使用 link_annotate(rect, options={})
函数创建链接。需要传递哪些选项才能使其在 PDF 中创建链接?
编辑:
如果有人有的话,我希望看到一个代码示例。
I need to embed a link into a generated pdf in a ruby on rails app. Is there a way to do this with prawn?
Reading about this it turns out that prawn-format was the answer for awhile, but 0.7.x broke this.
prawn-format uses the link_annotate(rect, options={})
function to create links. What options need to be passed into this to get it to create a link in the PDF?
edit:
I would like to see a code example of this being done if anyone has one.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我知道这是一个老问题,但对于那些仍然遇到这个问题的人来说,在当前版本的 Prawn 中,您可以使用内联格式,如下所示:
I know this is an old question, but for those still stumbling upon it, in current versions of Prawn, you can use inline format like this:
例如,如果您尝试创建指向外部页面 (http://google.com) 的链接,则可以使用下面,放置一个 100x100 的链接,放置在距离页面左下角 5, 5 处,边框为 1px:
Prawn Format 将解析传递给 pdf.text 方法的文本并查找 html a 标签。然后,它将使用正则表达式来解析目标和链接文本,最后创建一个像上面的链接一样的链接,其中包含一个适合标签内文本的边框(第一个参数)。我不确定如果没有 Prawn Format 如何实现这一点。但这就是使用 link_annotation 创建链接的方法。
If you are attempting to create a link to an external page (http://google.com), for instance you could use the following, to place a link that is 100x100 and placed at 5, 5 from the bottom left of the page, with a 1px border:
Prawn Format would parse the text passed to the pdf.text method and find html a tags. It would then use regular expressions to parse out the target and link text and finally create a link like the one above with a bounding box (the first param) that would fit around the text that was within the tags. I'm not sure how you could achieve this without Prawn Format. But that is how you can create a link using link_annotation.
另一种选择是使用 prawn 内置的低级注释支持:
http://prawn.majesticeacreature.com/ docs/prawn-core/classes/Prawn/Document/Annotations.html#M000158
方法如下:
The other option is to use prawn's built in low-level annotation support:
http://prawn.majesticseacreature.com/docs/prawn-core/classes/Prawn/Document/Annotations.html#M000158
Heres the method:
我最近这样做了 - 效果很好:
I recently did it like this - works great: