2010-11-10 1 views
2

Я бегу Rails 3.0.1 с креветкой-0.11.1.preDraw форматированный текст внутри таблицы/ячейки с 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 ...

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

ответ

5

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

+0

Спасибо за ваш ответ ... это очень сложно ... Я пытаюсь понять, как работает креветка, и я с трудом понимаю документацию .. – jfanals

+0

Не могли бы вы дать мне дополнительную помощь: при попытке создать простой объект Prawn :: Table :: Cell :: Text со следующим кодом: Prawn :: Table :: Cell :: Text.make (self,: content => «Cell 2»), но у меня все еще есть некоторые ошибки (на этот раз ошибка: «Тип контента не распознан: {: content =>« test »}». Каким будет правильный способ создания объекта? Спасибо еще раз! – jfanals

+0

Второй аргумент 'make' должен быть« точкой », после этого следуют«: content »и другие параметры. Документы для креветок немного редки. Эти примеры могут быть полезны, есть некоторые примеры использования «Prawn :: Table :: Cell :: Text»: https://github.com/sandal/prawn/tree/stable/examples/ –

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) 

 Смежные вопросы

  • Нет связанных вопросов^_^