Well, me again. I decided that I wanted to use points as measurements 
instead of percentages, so now it barfs with an AttributeError.


from gluon.contrib.pyfpdf import FPDF, HTMLMixin 
from gluon.html import *


pets = TABLE(_width="720pt")
pets.append(TR(TH('Dogs', _width="72pt", 
_align="left"),TH("Cats",_width="72pt", 
_align="left"),TH('Snakes',_width="72pt", _align="left")))
pets.append(TR('Collies','Tabby','Python', _width="60pt"))
pets.append(TR('Akitas', 'Persian', 'Garter'))
pets.append(TR('German Shepherds', 'Alley Cats', 'Rattlesnakes'))


class MyFPDF(FPDF, HTMLMixin):
    pass

pdf=MyFPDF()
#First page
pdf.add_page()
pdf.write_html(pets.xml())
pdf.output('html2.pdf','F')


This is clearly unremarkable HTML, but no, I get tracebacks like so:

Traceback (most recent call last):
  File "pyfpdf_test.py", line 73, in <module>
    pdf.write_html(pets.xml())
  File "/home/dave/PythonTraining/web2py/gluon/contrib/pyfpdf/html.py", 
line 388, in write_html
    h2p.feed(text)
  File "/usr/lib/python2.7/HTMLParser.py", line 114, in feed
    self.goahead(0)
  File "/usr/lib/python2.7/HTMLParser.py", line 158, in goahead
    k = self.parse_starttag(i)
  File "/usr/lib/python2.7/HTMLParser.py", line 324, in parse_starttag
    self.handle_starttag(tag, attrs)
  File "/home/dave/PythonTraining/web2py/gluon/contrib/pyfpdf/html.py", 
line 241, in handle_starttag
    self.pdf.set_x(self.table_offset)
AttributeError: HTML2FPDF instance has no attribute 'table_offset'

I find this remarkable; this ordinary HTML; web2py encourages the use of 
HTML helpers. web2py is easy to use, requires few dependencies, etc. etc. 
But what a *fight* to create a simple table-based PDF! :-( And I'm still 
experimenting in the layout stage. My final report will be much larger and 
include nested tables *(that are already rendering fine in HTML, but not in 
pyfpdf / html2pdf)*.

Should I bite the bullet and install Reportlab? It'll be harder to get 
started, more complicated to install & maintain (this will have to go on 
multiple machines). The idea of a simple web2py project was very attractive 
for these reasons.

Are others out there creating PDFs from HTML with pyfpdf & html2pdf??

-- 



Reply via email to