Нарисуйте форматированный текст внутри таблицы / ячейки с креветкой - PullRequest
2 голосов
/ 10 ноября 2010

Я использую Rails 3.0.1 с prawn-0.11.1.pre

Я только что провел несколько базовых тестов, чтобы посмотреть, смогу ли я заставить 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 ...

Как мне это сделать?

Ответы [ 2 ]

5 голосов
/ 10 ноября 2010

formatted_text не возвращает форматированный текст, он отображает его.Поэтому, когда вы вызываете formatted_text при построении данных для table, «Ячейка 2» отображается перед таблицей, а ячейка в строке 1 и столбце 2 пуста.Я думаю, что вы хотите поместить в Prawn :: Table :: Cell :: Text объект, где у вас есть formatted_text вызов.Если Prawn::Table::Cell::Text не поддерживает все, что вам нужно, то вам, вероятно, придется сделать свой подкласс Prawn::Table::Cell и сделать все вручную.

3 голосов
/ 25 января 2012

По крайней мере, в креветке 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)
...