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

问题描述 投票:0回答:3

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

我该怎么做?

ruby-on-rails ruby prawn
3个回答
5
投票

formatted_text
不返回格式化文本,而是渲染它。所以,当 您在为
formatted_text
(“Cell 2”)构建数据时调用
table
在表格之前呈现,第 1 行第 2 列的单元格是 空的。我想你想放在 Prawn::Table::Cell::Text 对象 您在哪里拨打
formatted_text
电话。如果
Prawn::Table::Cell::Text
不支持你需要的一切,那么你可能不得不做你的
Prawn::Table::Cell
的子类并全部手动完成。


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)

0
投票

您可以通过 单元格样式选项使用内联样式格式

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

© www.soinside.com 2019 - 2024. All rights reserved.