public
Description: Fast, Nimble PDF Writer for Ruby
Homepage: http://prawn.majesticseacreature.com
Clone URL: git://github.com/sandal/prawn.git
Now tables support alignment, and man... Prawn rules
sandal (author)
Thu Jul 24 14:54:22 -0700 2008
commit  91577a60f5cb1d490ebadde5d23d0c0d91d28c1c
tree    80300c13e9fde056ea2358e16506c4198e61ede6
parent  68c7b1347810db4e12bbd6d24f4d306d167151ab
...
9
10
11
12
 
13
14
15
...
9
10
11
 
12
13
14
15
0
@@ -9,7 +9,7 @@ headers, *body = FasterCSV.read("#{Prawn::BASEDIR}/examples/addressbook.csv")
0
 
0
 Prawn::Document.generate("fancy_table.pdf", :page_layout => :landscape) do
0
 
0
-  mask(:y) { table body, :headers => headers }
0
+  mask(:y) { table body, :headers => headers, :align => :center }
0
 
0
   table [["This is",   "A Test"    ],
0
          [  Prawn::Graphics::Cell.new( :text => "Of tables",
...
95
96
97
98
 
 
99
100
101
...
180
181
182
 
183
184
185
...
189
190
191
192
 
 
193
194
195
...
95
96
97
 
98
99
100
101
102
...
181
182
183
184
185
186
187
...
191
192
193
 
194
195
196
197
198
0
@@ -95,7 +95,8 @@ module Prawn
0
         @border              = options[:border]    || 1
0
         @position            = options[:position]  || :left
0
         @headers             = options[:headers]
0
-        @row_colors          = options[:row_colors]
0
+        @row_colors          = options[:row_colors]   
0
+        @align               = options[:align]
0
 
0
         @horizontal_padding  = options[:horizontal_padding] || 5
0
         @vertical_padding    = options[:vertical_padding]   || 5
0
@@ -180,6 +181,7 @@ module Prawn
0
                 e.vertical_padding   = @vertical_padding    
0
                 e.border             = @border
0
                 e.border_style       = :sides
1
+                e.align              = @align
0
                 c << e
0
               else
0
                 c << Prawn::Graphics::Cell.new(
0
@@ -189,7 +191,8 @@ module Prawn
0
                   :horizontal_padding => @horizontal_padding,
0
                   :vertical_padding => @vertical_padding,
0
                   :border   => @border,
0
-                  :border_style => :sides ) 
0
+                  :border_style => :sides,
0
+                  :align    => @align ) 
0
               end   
0
             end
0
 
...
49
50
51
52
 
 
53
54
55
...
60
61
62
63
 
 
64
65
66
...
145
146
147
148
 
149
150
151
...
49
50
51
 
52
53
54
55
56
...
61
62
63
 
64
65
66
67
68
...
147
148
149
 
150
151
152
153
0
@@ -49,7 +49,8 @@ module Prawn
0
         @width        = options[:width]
0
         @border       = options[:border]
0
         @border_style = options[:border_style] || :all               
0
-        @background_color = options[:background_color]
0
+        @background_color = options[:background_color] 
0
+        @align            = options[:align] || :left
0
 
0
         @horizontal_padding = options[:horizontal_padding] || 0
0
         @vertical_padding   = options[:vertical_padding]   || 0
0
@@ -60,7 +61,8 @@ module Prawn
0
       end
0
 
0
       attr_accessor :point, :border_style, :border, :background_color,
0
-                    :document, :horizontal_padding, :vertical_padding
0
+                    :document, :horizontal_padding, :vertical_padding,
0
+                    :align
0
       attr_writer   :height, :width #:nodoc:   
0
       
0
       def to_s
0
@@ -145,7 +147,7 @@ module Prawn
0
                                  @point[1] - @vertical_padding], 
0
                                 :width   => text_area_width,
0
                                 :height  => height - @vertical_padding) do
0
-          @document.text @text
0
+          @document.text @text, :align => @align
0
         end
0
       end
0
 

Comments

aflatter Sat Jul 26 10:13:44 -0700 2008 at lib/prawn/document/table.rb L108

Shouldn’t this merge attributes with precedence for already specified ones? This would allow us to overwrite single cells, e.g. change alignment for a column.

sandal Sat Jul 26 10:49:39 -0700 2008

We can merge certain attributes that don’t effect the cell size, yes.

I’ll look into it.