我正在使用 prawn-0.11.1.pre 运行 Rails 3.0.1
我只是做了一些基本测试,看看是否可以让 Prawn 创建一个包含一些格式化文本的简单表格:
data = ["Cell 1", formatted_text([{:text => "Cell 2"}])],
["Cell 3","Cell 4"]
table(data)
render
PDF 渲染如下
Cell 2
[Cell 1][ ]
[Cell 3][Cell 4]
(一个不错的表格,但表格外面有文字“Cell 2”)
我的目标是在单元格 #2 中获取格式化文本“单元格 2”...
我该怎么做?
formatted_text
不返回格式化文本,而是渲染它。所以,当
您在为 formatted_text
(“Cell 2”)构建数据时调用 table
在表格之前呈现,第 1 行第 2 列的单元格是
空的。我想你想放在 Prawn::Table::Cell::Text 对象
您在哪里拨打 formatted_text
电话。如果Prawn::Table::Cell::Text
不支持你需要的一切,那么你可能不得不做你的
Prawn::Table::Cell
的子类并全部手动完成。
至少在大虾0.12中,我可以做到:
table_data =
[[Prawn::Table::Cell::Text.new( pdf, [0,0], :content => "<b>Bold!</b>",
:inline_format => true),
Prawn::Table::Cell::Text.new( pdf, [0,0], :content => txt )
]]
pdf.table(table_data)
您可以通过 单元格样式选项使用内联样式格式
inline_format
:
table [["Just <font size='18'>some</font> <b><i>inline</i></b>", "", ""],
["<color rgb='FF00FF'>styles</color> being applied here", "", ""]],
:cell_style => { :inline_format => true }
参见:https://github.com/practicingruby/prawn/blob/stable/manual/table/cell_text.rb#L28