Prawn: text()は先頭の空白を抑制します

作成日 2010年02月11日  ·  6コメント  ·  ソース: prawnpdf/prawn

エビ::Document.generate('x.pdf ")do
 テキスト「x」
 テキスト「x」
終わり

対比して:

エビ::Document.generate('x.pdf ")do
 テキスト"|x"
 テキスト"|x"
終わり

最も参考になるコメント

@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" * 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

次に、フォントをダウンロードすると機能します。
ありがとう。

このページは役に立ちましたか?
0 / 5 - 0 評価