Prawn: text at horizontal middle of the page


#1

How to achieve this, like a horiz. align to center?

I`m trying Prawn to generate PDFs, but having a problem to place a
short text (3 words) at the horiz. middle of the page. This code
places the text 2 or 3 centimeters right from the middle.

Prawn::Document.generate(‘public/’ + dir +
“certificado.pdf”, :page_size => “A4”, :page_layout => :landscape) do
bounding_box([0,430], :width => 800, :height => 600) do
text nome, :size => 28, :align => :center
end
end

As I change “:width => 800” value, the distance from the middle
changes. I tried to remove width and heigth options, hoping the
bounding_box to fit all the page, but I got a error.

PS: I tried to subscribe to http://groups.google.com/group/prawn-ruby
but it appears it is not accepting subscriptions.


#2

Sorry for responding to a very ancient post, I almost never read the
Rails list…

On Jan 6, 9:22 am, Tom L. removed_email_address@domain.invalid wrote:

  end

end

As I change “:width => 800” value, the distance from the middle
changes. I tried to remove width and heigth options, hoping the
bounding_box to fit all the page, but I got a error.

Get rid of the bounding box entirely and just do: text nome, :size =>
28, :align => :center

You were centering your text within the box, not within the page.

PS: I tried to subscribe tohttp://groups.google.com/group/prawn-ruby
but it appears it is not accepting subscriptions.

Please re-subscribe. You probably missed the “Are you human” form
field, which caused you to be denied.

-greg


#3

Hello Greg!
at first, congratulations! very nice work!

funny, today a tried again to subscribe to the prawn group
and noted the “r u a human?” question. So I subscribed and returned
here,
in the rails talk, to copy my msg to there, then I saw you reply :slight_smile:

well, here we go…

On 29 jan, 16:11, Gregory B. removed_email_address@domain.invalid wrote:

Sorry for responding to a very ancient post, I almost never read the
Rails list…

Get rid of the bounding box entirely and just do: text nome, :size =>
28, :align => :center

You were centering your text within the box, not within the page.

in really I tried this before, but got a different bad aligment
problem.
Also, I`m using bounding box to position my text. Is there another way
to position text without bounding box?

Moreover, if I keep using the bounding box, how to position it at
exact
center of the page?

PS: when we close this thread, I will copy it digested to the prawn
list.

Thank you,

Tom L.


#4

Solved!

I had to use bounding box to position the text.
The trick is to use the bounding_box parameters:
:width => bounds.width, :height => bounds.height
instead
:width => 800, :height => 600
now prawn center the text exactly.

See all the code…

Prawn::Document.generate(“Certificado.pdf”, :page_size =>
“A4”, :page_layout => :landscape) do
bounding_box([0,430], :width => bounds.width, :height =>
bounds.height) do
text name, :size => 28, :align => :center
end
bounding_box([0,180], :width => bounds.width, :height =>
bounds.height) do
text “#{local}, #{date}”, :size => 20, :align => :center
end
end