Hi all,
I’m facing a problem generating PDF documents using PDF:writer. My
code generates a couple of dozen documents in a loop. Each contains
something between 8 to 30 tables. Most of the documents generate just
fine, but occasionally, say in one of a dozen documents, one of the
tables gets printed wrongly. The heading of the table is printed with
one column name per page - so if my table has 5 columns, there’ll be 5
pages, each with just one column name printed at the top, no data. On
the next page after these, the table will be printed correctly, with
proper header and everything.
Typically this happens to a table that’s going to be rolled over
to the next page, just space for one row at the bottom of the page.
However, many other tables in the same situation do get printed
correctly, so that can’t be the only reason.
I’m using an older Rails, 1.1.6, but PDF:Writer is 1.1.3. The code
that’s generating the table is :
answertab = PDF::SimpleTable.new
answertab.width = 500
answertab.protect_rows = 1
answertab.split_rows = true
answertab.shade_rows = :striped
answertab.shade_color = Color::RGB::Grey90
answertab.shade_color2 = Color::RGB::Grey90
answertab.show_headings = true
answertab.font_size = 12
answertab.minimum_space = 40
answertab.show_lines = :all
line = {}
ff_all = answer.form_fields.find(:all, :order=>"position")
ff_titles = ["Number"].concat(ff_all.collect{|f|
f.label.capitalize})
answertab.column_order = ff_titles
ff.each do |field_id|
field = FormField.find(field_id)
begin
line[field.label.capitalize] =
answer.responses.find(:first,
:conditions=>[“form_field_id=?”,field_id]).response
rescue NoMethodError
line[field.label.capitalize] = " "
end
end
line[“Number”] = mynumber
answertab.data << line
end
binder.text "\n"
answertab.columns["Number"] =
PDF::SimpleTable::Column.new(“Number”) { |col|
col.width = 60
col.heading = “Neighbor”
col.justification = :left
}
if answertab.data.size > 0
answertab.render_on(binder)
end
The above code is repeated several times in each document, for
each ‘answertab’.
Has anyone else seen/solved this problem? Several people have
mentioned that a patch to the Transaction package fixed their own
problems. I have Transaction-simple-1.4.0 installed. I searched but
did not find any patches that seemed relevant.
Thanks in advance!
Regards,
Sudarshan