我正在尝试用Prawn生成PDF。在我的PDF模板中,我有带有单元格的表格。在其中一个单元格中,我有一个电子邮件地址:
cell_email = pdf.make_cell(:content => booking.user_email, :border_width => 0)
我想发电子邮件链接到“mailto”链接。我知道我可以用这样的方式链接:
pdf.formatted_text([{:text => booking.user_email, :link => "mailto: #{booking.user_email}"}])
然而,将这两行合并(将格式化文本作为内容)不起作用:
cell_email = pdf.make_cell(:content => pdf.formatted_text([{:text => booking.user_email, :link => "mailto: #{booking.user_email}"}]), :border_width => 0)
任何想法如何克服此问题(在表格单元格内创建电子邮件链接)?
亲切的问候,非常感谢!
答案 0 :(得分:8)
您可以为单元格指定inline_format
并自行创建链接:
cell_email = pdf.make_cell(
:content => "<link href='mailto:#{booking.user_email}'>#{booking.user_email}</link>",
:inline_format => true
)
您也可以为整个表格指定inline_format
:
table data, :cell_style => { :inline_format => true }
Prawn的inline_format
支持<b>
,<i>
,<u>
,<strikethrough>
,<sub>
,<sup>
,{{1} },<font>
和<color>
。
答案 1 :(得分:0)
以下内容在链接上加了下划线,并赋予了蓝色:
link = make_cell(content: "<color rgb='0000FF'> <u> <link href='https://stackoverflow.com/questions/11390505/prawn-links-inside-table-cells'> #{booking.user_email} </link></u> </color>", inline_format: true)
data = [[link]]
table(data,:header => true, :row_colors =>["F0F0F0","FFFFCC"]) do
end