【问题标题】:Draw formatted text inside a Table/Cell with Prawn使用 Prawn 在表格/单元格内绘制格式化文本
【发布时间】:2010-11-10 17:11:34
【问题描述】:

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

我的目标是在 Cell #2 中获取格式化文本“Cell 2”...

我应该怎么做?

【问题讨论】:

    标签: ruby-on-rails ruby prawn


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复...这非常令人沮丧...我正在尝试了解 Prawn 的工作原理,但我几乎看不懂文档...
    • 您能否给我一个额外的帮助:尝试使用以下代码创建一个简单的 Prawn::Table::Cell::Text 对象时:Prawn::Table::Cell::Text。 make(self, :content => "Cell 2") 但我仍然遇到一些错误(这次错误是“内容类型无法识别:{:content=>“test”}”。正确的创建方法是什么对象?再次感谢!
    • make 的第二个参数应该是一个“点”,:content 和其他选项紧随其后。对虾的文档有点稀疏。这些例子可能有用,Prawn::Table::Cell::Text 的一些用法演示了:github.com/sandal/prawn/tree/stable/examples
    • 它们确实很稀疏......我会看看我能用它做什么;)谢谢!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 2019-09-30
      • 1970-01-01
      相关资源
      最近更新 更多