使用Prawn在表格/单元格内绘制格式化文本

时间:2010-11-10 17:11:34

标签: ruby-on-rails ruby prawn

我正在使用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”文字)

我的目标是在Cell#2 ...

中获取格式化文本“Cell 2”

我该怎么做?

2 个答案:

答案 0 :(得分:5)

formatted_text不返回带格式的文本,而是呈现它。所以,什么时候 在为formatted_text,“Cell 2”构建数据时致电table 在表格和第1行和第2列的单元格之前呈现 空。我想你想放在Prawn::Table::Cell::Text对象 你有formatted_text电话的地方。如果Prawn::Table::Cell::Text 不支持你需要的一切,然后你可能不得不做你的 Prawn::Table::Cell的子类,并手动完成。

答案 1 :(得分:3)

至少在大虾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)