2014-04-24 4 views
1

У меня есть два двумерный массив:Ruby + Prawn PDF: Как добавить префикс пространства в строку внутри таблицы?

line_items = [] 
    line_item.product.book_versions.each do |book_version| 
     data = [] 
     data << "" 
     data << "  #{book_version.book.title} - #{book_version.isbn}" #<-- notice the extra spaces in the beginning of the string 
     data << "#{line_item.quantity}" 
     line_items << data 
    end 

И я загрузить эти данные в моей таблице с pdf.table line_items ... do ... end

Однако лишние пробелы в моей 2-ой колонке не отображаются. Как мне избежать этих пространств, чтобы они не были лишены?

ответ

0

Ваш лучший выбор, вероятно, будет заключаться в использовании пользовательского дополнения для этого столбца. Что-то вроде этого:

pdf.table line_items do 
    column(1).padding = [5, 5, 5, 30] # Default padding is 5; just increase the left padding 
    ... 
end 
0

Я не думаю, что это проблема с экранированием, возможно, вам следует использовать более формальный способ для интервала, попробуйте использовать символ \t вместо пробелов. Он предназначен для этого использования.

line_items = [] 
line_item.product.book_versions.each do |book_version| 
    data = [] 
    data << "" 
    data << "\t\t#{book_version.book.title} - #{book_version.isbn}" 
    data << "#{line_item.quantity}" 
    line_items << data 
end 
+2

Не работал ... он все еще игнорирует его – Edmund

1

В зависимости от того, что вы хотите сделать, вы можете также использовать константу Prawn::Text::NBSP. Если это чисто пустое пространство, то заполнение столбца - это то, что вы хотите. Однако у меня была ситуация, когда мне пришлось моделировать «галочку», чтобы подчеркнуть символ X. Моя таблица выглядела так:

table([["<u>X</u>", "Do you agree to these terms and conditions?"]]) do 
    columns(0).style(:inline_format => true) 
end 

Однако это дало простой X с подчеркиванием. Я хотел бы подчеркнуть, что раздел будет более широким, т. Е. Пробельным (пустым) символом, который все еще получил подчеркивание. Поэтому я изменил данные таблиц

table([["<u>#{Prawn::Text::NBSP*3} X #{Prawn::Text::NBSP*3}</u>", ...]]) do 

Тогда в PDF, это выглядело, как я хотел: ___X___X явно подчеркнуты тоже).