我正在尝试使用prawn pdf在ruby中生成一个简单的表。
我需要单元格中的某些文本为粗体,而有些文本不是粗体。例如:
现在,按照一些示例,我使用以下代码进行基本表格渲染:
pdf.table([
["1. Row example text", "433"],
["2. Row example text", "2343"],
["3. Row example text", "342"],
["4. Row example text", "36"]], :width => 500, :cell_style => {
:font_style => :bold})
但我完全没有办法用更多格式将更多文本插入第一个单元格。 (在这种情况下,我希望它是不受约束的)
有谁知道如何做到这一点?
感谢您的帮助
答案 0 :(得分:20)
Prawn::Document.generate("test.pdf") do |pdf|
table_data = [[Prawn::Table::Cell::Text.new( pdf, [0,0], :content => "<b>1. Row example text</b> \n\nExample Text Not Bolded", :inline_format => true), "433"],
[Prawn::Table::Cell::Text.new( pdf, [0,0], :content => "<b>2. Row example text</b>", :inline_format => true), "2343"],
[Prawn::Table::Cell::Text.new( pdf, [0,0], :content => "<b>3. Row example text</b>", :inline_format => true), "342"],
[Prawn::Table::Cell::Text.new( pdf, [0,0], :content => "<b>4. Row example text</b>", :inline_format => true), "36"]]
pdf.table(table_data,:width => 500)
end
您也可以
Prawn::Document.generate("test.pdf") do |pdf|
table_data = [["<b>1. Row example text</b>\n\nExample Text Not Bolded", "<b>433<b>"],
["<b>2. Row example text</b>", "<b>2343</b>"],
["<i>3. Row example text</i>", "<i>342</i>"],
["<b>4. Row example text</b>", "<sub>36</sub>"]]
pdf.table(table_data, :width => 500, :cell_style => { :inline_format => true })
end
Prawn的inline_format支持<b>, <i>, <u>, <strikethrough>, <sub>, <sup>, <font>, <color> and <link>