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

时间:2010-02-07 05:59:00

标签: ruby-on-rails ruby pdf prawn

我需要在rails应用程序的ruby中嵌入生成的pdf链接。有没有办法用虾做到这一点?

读到这一点后发现大虾格式是一段时间的答案,但0.7.x打破了这一点。

prawn-format使用link_annotate(rect, options={})函数创建链接。需要哪些选项才能在PDF中创建链接?

修改
我希望看到一个代码示例,如果有人有一个这样做。

4 个答案:

答案 0 :(得分:21)

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

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

答案 1 :(得分:10)

如果您尝试创建指向外部页面的链接(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标签。然后,它将使用正则表达式来解析目标和链接文本,最后创建一个类似上面的链接,其边界框(第一个参数)将适合标记内的文本。如果没有Prawn格式,我不确定如何实现这一目标。但这就是使用link_annotation创建链接的方法。

答案 2 :(得分:1)

  

截至Prawn 0.7,prawn-format是   完全没有支持,也不会   使用Pilen 0.7+的版本。感觉   免费分叉和修复,当然    - github上的prawn-format主页

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

继承人的方法:

  

link_annotation(rect,options = {})

     

创建链接的便捷方法   注释。 rect必须是一个数组   四个数字,描述的范围   注释。选项哈希   应该包括:Dest   (描述目标目的地,   通常作为一个字符串   记录在文件的Dests中   树),或:A(描述对...的行动)   执行单击链接),或:PA   (用于描述要链接的URL)。

答案 3 :(得分:0)

我最近这样做了 - 效果很好:

      formatted_text_box([{:text=>"Google", :link=>"https://google.com", :color=>"0000ee"}])