PDF paths are hard, so we tried some practical solutions. See this
appreport. https://github.com/lucasdavila/web2py-appreport After long
searching found something that can permanently solve these problems that
fpdf, pisa, geraldo bring us in doing pdf.
I think you, as I found the solution.
{{}}'s
Ovidio Marinho Falcao Neto
Web Developer
[email protected]
83 8826 9088 - Oi
83 9336 3782 - Claro
Brasil
2013/4/11 Rahul <[email protected]>
>
> Hi All,
> I am having a few problems with my code to generate proper PDF
> reports. Basically I have the same problems with reportlab so i am giving
> pyfpdf a try -
> *Problems:*
>
> 1. Long text (example *description *in below code) does not fit in the
> boundaries. It does not wrap to next line it just exceeds the page width -
> please see sample report attached.
> 2. I cant make zebra strips (alternate line/row color) to work
> properly here
> 3. The HTML output does not work (I have the view rep_open_issues.html
> - no data) [Live Demo for HTML pyfpdf does not work Ex - this url -
> http://www.web2py.com.ar/fpdf/default/listing ] Throws error - *invalid
> view (default/listing.html)*
>
> Here is my code -
>
> def rep_open_issues():
> response.title = "Open Issues"
> head = THEAD(TR(TH("Ticket",_width="15%"),
> TH("Sub Cateogry",_width="20%"),
> TH("Severity",_width="15%"),
> TH("Description",_width="50%"),
> _bgcolor="#A0A0A0"))
>
> foot = TFOOT(TR(TH("Fair Price - Good Day",_width="100%"),
> _bgcolor="#E0E0E0"))
>
> querysql = (""" Select ticket_no, sub_category, severity, description
> from issues where status='Open' and
> created_by='""" + logged_in_user )
>
> try:
> allissues = db.executesql(querysql)
> except: pass
> rows = []
>
> for issue in allissues:
> mycounter = []
> mycounter.append(issue)
>
> i = len(mycounter)
> col = i % 2 and "#F0F0F0" or "#FFFFFF"
> rows.append(issue)
>
>
>
> # make the table object
> body = TBODY(*rows)
> table = TABLE(*[head,foot, body],
> _border="1", _align="center", _width="100%")
>
> if request.extension=="pdf":
> from gluon.contrib.pyfpdf import FPDF, HTMLMixin
>
> # define our FPDF class (move to modules if it is reused
> frequently)
> class MyFPDF(FPDF, HTMLMixin):
> def header(self):
> self.set_font('Arial','B',15)
> self.cell(0,10, response.title ,1,0,'C')
> self.ln(20)
>
> def footer(self):
> self.set_y(-15)
> self.set_font('Arial','I',8)
> txt = 'Page %s of %s' % (self.page_no(),
> self.alias_nb_pages())
> self.cell(0,10,txt,0,0,'C')
>
> pdf=MyFPDF()
> # first page:
> pdf.add_page()
> pdf.write_html(str(XML(table, sanitize=False)))
> response.headers['Content-Type']='application/pdf'
> return pdf.output(dest='S')
> else:
> # normal html view:
> return dict(table=table)
>
> Not much is changed here- I know, i may be missing a few tricks. Please
> help me fill the same
>
> As a Ref - I checked this thread ["Re: How to Generate the effective
> report by using web2py"] in google groups but without much resolution.
> Please suggest.
>
> Thanks Rahul
>
>
> --
>
> ---
> 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/groups/opt_out.
>
>
>
--
---
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/groups/opt_out.