Prawn: рдЯреЗрдХреНрд╕реНрдЯ () рдкреНрд░рдореБрдЦ рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рдХреЛ рджрдмрд╛ рджреЗрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рдлрд╝рд░ре░ 2010  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: prawnpdf/prawn

 рдкреНрд░реЙрди :: Document.generate('x.pdf") do
 рдкрд╛рда "рдПрдХреНрд╕"
 рдкрд╛рда "рдПрдХреНрд╕"
 рд╕рдорд╛рдкреНрдд

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд:

 рдкреНрд░реЙрди :: Document.generate('x.pdf") do
 рдкрд╛рда "| рдПрдХреНрд╕"
 рдкрд╛рда "| рдПрдХреНрд╕"
 рд╕рдорд╛рдкреНрдд

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХрд╛рдзрд┐рдХ рдиреНрдпреВрд▓рд╛рдЗрди рд╣реИрдВ рддреЛ @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-breaker_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.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 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

mojavelinux picture mojavelinux  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

timokleemann picture timokleemann  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jeffblake picture jeffblake  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nynhex picture nynhex  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gioele picture gioele  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ