Prawn: text() supprime les espaces de début

Créé le 11 févr. 2010  ·  6Commentaires  ·  Source: prawnpdf/prawn

 Crevette ::Document.generate('x.pdf") faire
 texte "x"
 texte "x"
 finir

Contraste avec :

 Crevette ::Document.generate('x.pdf") faire
 texte "|x"
 texte "|x"
 finir

Commentaire le plus utile

@thbar votre exemple se casse si vous avez plusieurs retours à la ligne. Utilisez ceci à la place :

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

De http://stackoverflow.com/a/17752989/165673

Tous les 6 commentaires

Pas un bogue. Changement de comportement intentionnel par Daniel. Voir:
http://groups.google.com/group/prawn-ruby/browse_thread/thread/836c1349ec76c720

Ok, mais comment je peux rendre cette indentation:

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

La propriété :indent_paragraphs ne pouvait pas m'aider avec ça.

Utilisez un espace insécable : http://en.wikipedia.org/wiki/Non-breaking_space

Voici un exemple de la façon de procéder en utilisant des espaces insécables (ici pour afficher du code):

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 votre exemple se casse si vous avez plusieurs retours à la ligne. Utilisez ceci à la place :

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

De http://stackoverflow.com/a/17752989/165673

content = content.gsub(/^([^\S\r\n]+)/m) { |m| "\xC2\xA0" * m.taille }
après avoir fait cela, j'ai eu

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

Ensuite, téléchargé une police et cela fonctionne.
Merci.

Cette page vous a été utile?
0 / 5 - 0 notes