Prawn: text() подавляет начальные пробелы

Созданный на 11 февр. 2010  ·  6Комментарии  ·  Источник: prawnpdf/prawn

 Prawn::Document.generate('x.pdf") сделать
 текст "х"
 текст "х"
 конец

В отличие от:

 Prawn::Document.generate('x.pdf") сделать
 текст "| х"
 текст "| х"
 конец

Самый полезный комментарий

@thbar ваш пример прерывается, если у вас есть несколько новых строк. Используйте это вместо этого:

content = content.gsub(/^([^\S\r\n]+)/m) { |m| "\xC2\xA0" * m.size }

Из http://stackoverflow.com/a/17752989/165673

Все 6 Комментарий

Не ошибка. Преднамеренное изменение поведения Даниэлем. Видеть:
http://groups.google.com/group/prawn-ruby/browse_thread/thread/836c1349ec76c720

Хорошо, но как я могу отобразить этот отступ:

   Prawn::Document.generate('x.pdf") do 
   text "              xxxxxx
               xxxxxx      
                   xxxxxxxxxxxxx"
   end

Свойство :indent_paragraphs не могло мне в этом помочь.

Используйте неразрывный пробел: http://en.wikipedia.org/wiki/Non-breaking_space

Вот пример того, как это сделать, используя неразрывные пробелы (здесь показан код):

content = "def function(param)\n  puts 'this'\nend"
content = content.gsub(/^(\s+)/m) { |m| "\xC2\xA0" * m.size }
font "courier" do
  text content
end

@thbar ваш пример прерывается, если у вас есть несколько новых строк. Используйте это вместо этого:

content = content.gsub(/^([^\S\r\n]+)/m) { |m| "\xC2\xA0" * m.size }

Из http://stackoverflow.com/a/17752989/165673

content = content.gsub(/^([^\S\r\n]+)/m) { |m| "\xC2\xA0" * м.размер }
после этого я получил

PDF's built-in fonts have very limited support for internationalized text.
If you need full UTF-8 support, consider using a TTF font instead.

To disable this warning, add the following line to your code:
Prawn::Font::AFM.hide_m17n_warning = true

Потом скачал шрифт и все работает.
Спасибо.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги