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

daupos2t  于 9个月前  发布在  Ruby
关注(0)|答案(3)|浏览(89)

我正在使用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]


(一个漂亮的表,但表外有文本“单元格2”)
我的目标是在单元格#2中获得格式化文本“单元格2”.
我该怎么做?

sg24os4d

sg24os4d1#

formatted_text不返回格式化的文本,而是呈现它。因此,当您在为table构建数据时调用formatted_text时,“二号牢房”在表格之前呈现,第1行第2列的单元格是空的。我认为你想把Prawn::Table::Cell::Text对象放在你有formatted_text调用的地方。如果Prawn::Table::Cell::Text不支持你需要的一切,那么你可能需要手工创建Prawn::Table::Cell的子类。

sd2nnvve

sd2nnvve2#

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

字符串

c3frrgcw

c3frrgcw3#

您可以使用内联样式格式与单元格样式选项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

相关问题