エビ::Document.generate('x.pdf ")do テキスト「x」 テキスト「x」 終わり
対比して:
エビ::Document.generate('x.pdf ")do テキスト"|x" テキスト"|x" 終わり
バグではありません。 ダニエルによる意図的な行動の変化。 見る:
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 }
content = content.gsub(/ ^([^ \ S \ r \ n] +)/ m){| m | "\ xC2 \ xA0" * m.size}
これをした後、私は得ました
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
次に、フォントをダウンロードすると機能します。
ありがとう。
最も参考になるコメント
@thbar複数の改行がある場合、例は壊れます。 代わりにこれを使用してください:
http://stackoverflow.com/a/17752989/165673から