Nice. On Wednesday, 18 July 2012 01:46:44 UTC-5, Akash Kakkar wrote: > > PFA Basic example pdf with nested tables using web2py-appreport plugin , > Please let me know if this would work in your case. > > https://github.com/lucasdavila/web2py-appreport > > I can test if you provide me the html of with the nested table you plan to > have. > > The attached report was generated using PISA (xhtmltopdf) part of the > plugin. > > > > On Sunday, 15 July 2012 01:36:33 UTC+5:30, thinkwell wrote: >> >> Hello everyone, >> >> I'm experimenting with pyfpdf with HTML formatting, but it's not going so >> well. Is a bit buggy. For example, this code generates a KeyError: 'width'. >> >> {from gluon.contrib.pyfpdf import FPDF, HTMLMixin >> from gluon.html import * >> >> header = HEAD('html2pdf', _align='center') >> >> pets = TABLE(_border=1, _width="100%") >> pets.append(TR(TH('Dogs'),TH("Cats"),TH('Snakes'))) >> pets.append(TR('Collies','Tabby','Python')) >> pets.append(TR('Akitas', 'Persian', 'Garter')) >> >> >> class MyFPDF(FPDF, HTMLMixin): >> pass >> >> html2 = pets.xml() >> >> print html2 >> >> pdf=MyFPDF() >> #First page >> pdf.add_page() >> pdf.write_html(html2) >> pdf.output('html2.pdf','F')} >> >> I >> {/usr/lib/python2.7/HTMLParser.pyc in goahead(self, end) >> 156 if startswith('<', i): >> 157 if starttagopen.match(rawdata, i): # < + letter >> --> 158 k = self.parse_starttag(i) >> 159 elif startswith("</", i): >> 160 k = self.parse_endtag(i) >> >> /usr/lib/python2.7/HTMLParser.pyc in parse_starttag(self, i) >> 322 self.handle_startendtag(tag, attrs) >> 323 else: >> --> 324 self.handle_starttag(tag, attrs) >> 325 if tag in self.CDATA_CONTENT_ELEMENTS: >> 326 self.set_cdata_mode(tag) >> >> /home/dave/PythonTraining/web2py/gluon/contrib/pyfpdf/html.pyc in >> handle_starttag(self, tag, attrs) >> 245 self.td = dict([(k.lower(), v) for k,v in >> attrs.items()]) >> 246 self.th = True >> --> 247 if self.td.has_key('width'): >> 248 self.table_col_width.append(self.td['width']) >> 249 if tag=='thead': >> >> KeyError: 'width' >> } >> >> I tried changing line 247 to - >> {if self.td.has_key('width'):} >> >> But the KeyError is still getting raised. :-( >> >> Is generating reports from HTML not recommended? In addition to this >> KeyError, I've frequently gotten "list out of range" exceptions raised as >> well, on what seem like the most vanilla of experiments. >> >> >>
--