Back when, I played around with the fpdf tutorial, and built a controller
that created the "Hello, World" example. Recently, I revisited that and
added some real data, taking the last 25 rows from my table-of-interest.
And I got that to display nicely, in a manner similar to my regular page
using an SQLTABLE(records). I even managed to do the even/odd striping.
But of course, a lot of that example was having formatting stuff ("view")
in my controller. So I went to move it into a real view file, but when I
browsed to that location, the browser had the pdf viewer open but no
document.
The view looked like
{{
import os
from gluon.contrib.fpdf import FPDF
response.headers['Content-Type'] = "application/pdf"
pdf = FPDF()
pdf.add_page()
pdf.set_font('Arial', 'I', 14)
pdf.cell(40, 10, "Hello, ExampleServer World")
pdf.ln()
pdf.set_font('Arial', '', 10)
pdf.set_fill_color(210,210,240)
print "found %d results" % (len(results))
for row in results:
fill = 1 if row.id % 2 else 0
pdf.cell(20, 5, str(row.id), '', 0, '', fill)
pdf.cell(50, 5, row.eventtime.isoformat(), '', 0, '', fill)
pdf.cell(40, 5, row.eventstatus, '', 0, '', fill)
pdf.cell(20, 5, row.client, '', 0, '', fill)
pdf.cell(9, 5, str(fill), '', 1, 'C', fill)
pass
print "trying to do pdf,output"
= pdf.output('tut01.pdf', 'S')
}}
I got things to work again by changing the last line to
stuff = open("/tmp/stuff.pdf", 'w')
stuff.write(pdf.output('tut01.pdf', 'S'))
stuff.close()
response.stream("/tmp/stuff.pdf")
why didn't the first version work? That's what generic.pdf does via
gluon/contrib/generic.py's html_to_pdf(), I believe, which I was using as a
guide.
I will note that I did have problems with generic.pdf, but I need to
research that more. The first issue I could work around, not having PIL
available to process my logo's .png (removed the logo, which was called out
in layout.html since this is an older app), but there was something else
that gave me an error, as well. When I go back and look at that, I may have
another question for the list.
/dps
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.