12
votes

How do I set the font size in a PDF table using the prawn gem?

When I call prawn like the following:

pdf = Prawn::Document.new(:page_size => 'LEGAL', :page_layout => :landscape)
pdf.table data, 
    :header => true,
    :column_widths => widths,
    :font_size => 7,
    :row_colors => ["EEEEEE", "FFFFFF"]

I get an NoMethodError

undefined method `font_size=' for #<Prawn::Table:0x6ce37ea4>

When I remove the ":font_size => 7", it renders but I get an undesirable font size.

I am using prawn 0.12.0, ruby 1.9.3p194, and Rails 3.1.9.

3

3 Answers

21
votes

You have to apply the size property to the cell text directly. Here is how to do this:

pdf.table data, 
  :header => true,
  :column_widths => widths,
  :cell_style => { size: 7 },
  :row_colors => ["EEEEEE", "FFFFFF"]

Source: http://prawn.majesticseacreature.com/manual.pdf

4
votes

:font_size => 7 not works.

The correct way is :size => 7

    pdf = Prawn::Document.new(:page_size => 'LEGAL', :page_layout => :landscape)
    pdf.table data, 
    :header => true,
    :column_widths => widths,
    :size => 7,
    :row_colors => ["EEEEEE", "FFFFFF"]
0
votes
pdf.table(data) do
  style row(0), :font_size => 7
end

I believe for 0.12.0 you could also use something like this:

table([[ {:font_size => 7 } ]])

https://github.com/prawnpdf/prawn/wiki/CHANGELOG