我需要在 ruby on rails 应用程序中将链接嵌入到生成的 pdf 中。有没有办法用虾做到这一点?
读到这一点,原来对虾格式是一段时间的答案,但 0.7.x 打破了这一点。
prawn-format 使用该link_annotate(rect, options={})
函数创建链接。需要将哪些选项传递给它才能在 PDF 中创建链接?
编辑:
如果有人有的话,我想看看这个代码示例。
我需要在 ruby on rails 应用程序中将链接嵌入到生成的 pdf 中。有没有办法用虾做到这一点?
读到这一点,原来对虾格式是一段时间的答案,但 0.7.x 打破了这一点。
prawn-format 使用该link_annotate(rect, options={})
函数创建链接。需要将哪些选项传递给它才能在 PDF 中创建链接?
编辑:
如果有人有的话,我想看看这个代码示例。
我知道这是一个老问题,但对于那些仍然绊倒它的人,在当前版本的虾中,你可以使用这样的内联格式:
pdf.text "Website: <link href='http://www.stackoverflow.com'>stackoverflow</link>", :inline_format => true
如果您尝试创建指向外部页面 ( http://google.com ) 的链接,例如,您可以使用以下内容放置一个 100x100 的链接,并放置在页面左下角的 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 a 标签。然后它会使用正则表达式来解析目标和链接文本,最后创建一个类似上面的链接,其中包含一个适合标签内文本的边界框(第一个参数)。我不确定没有虾格式你怎么能做到这一点。但这就是您可以使用 link_annotation 创建链接的方式。
从 Prawn 0.7 开始,prawn-format 完全不受支持,并且不适用于 Prawn 0.7+ 的版本。当然,请随意 fork 和修复 - github 上的虾格式主页
另一种选择是使用虾的内置低级注释支持: http: //prawn.majesticseaacreature.com/docs/prawn-core/classes/Prawn/Document/Annotations.html#M000158
方法如下:
链接注释(矩形,选项={})
一种创建链接注释的便捷方法。rect 必须是一个由四个数字组成的数组,用于描述注释的边界。选项哈希应该包括 :Dest(描述目标目的地,通常作为已记录在文档的 Dest 树中的字符串)或 :A(描述单击链接时要执行的操作)或 :PA(用于描述要链接到的 URL)。
我最近这样做了 - 效果很好:
formatted_text_box([{:text=>"Google", :link=>"https://google.com", :color=>"0000ee"}])