Fresh blank version of web2py, in default controller:

def report():
    import os
    response.title = "web2py sample report"

    # include a chart from google chart
    url = "
http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=500x200&ch1=Hello|World&.png
"
    chart = IMG(_src=url, _width="250", _height="100")

    # create a small table with some data:
    rows = [THEAD(TR(TH("Key", _width="70%"),
        TH("Value", _width="30%"))),
        TBODY(TR(TD("Hello"), TD("60")),
        TR(TD("World"), TD("40")))]

    table = TABLE(*rows, _border="0", _align="center", _width="50%")

    if request.extension == "pdf":
        from gluon.contrib.pyfpdf import FPDF, HTMLMixin

        # create a custom class with the required functionalities
        class MyFPDF(FPDF, HTMLMixin):
            def header(self):
                "hook to draw custom page header (logo and title)"

                # remember to copy logo_pb.png to static/images (and remove
alpha channel)
                #logo = os.path.join(request.folder, "static", "images",
"logo_pb.png")
                #self.image(logo, 10, 8, 33)
                self.set_font("Arial", "B", 15)
                self.cell(65)   # padding
                self.cell(60, 10, response.title, 1, 0, 'C')
                self.ln(20)

            def footer(self):
                "hook to draw custom page footer (printing page numbers)"
                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()

                # create a page and serialize/render HTML objects
                pdf.add_page()
                pdf.write_html(table.xml())
                #pdf.write_html(CENTER(chart).xml())

                # prepare PDF to download:
                response.headers['Content-Type'] = 'application/pdf'
                return pdf.output(dest='S')

    # else normal html view
    return dict(chart=chart, table=table)

I thought it was the logo so I commented it out, but still the exact same
error.

Looks like it is failing here:
def _parsepng(self, name):
        #Extract info from a PNG file
        if name.startswith("http://";) or name.startswith("https://";):
            import urllib
            f = urllib.urlopen(name)

Which I am not sure why considering there is no PNG in my code so I guess
it is doing something behind the scene. I even commented out the chart line
so there should be no image issues.

On Thu, Mar 15, 2012 at 10:49 AM, Bruce Wade <bruce.w...@gmail.com> wrote:

> Install what app? I am following the instructions to create a PDF.
>
>
> On Thu, Mar 15, 2012 at 10:47 AM, Alan Etkin <spame...@gmail.com> wrote:
>
>> How are you running the code? Did you install the app from the apps
>> folder?
>>
>> On Mar 15, 2:29 pm, Bruce Wade <bruce.w...@gmail.com> wrote:
>> > Chapter 10: Creating PDF reports
>> >
>> > Error:
>> >
>> > Traceback (most recent call last):
>> >   File
>> "/home/bruce/Development/bossteam_dev/projects/yaw_dev/gluon/restricted.py",
>> > line 204, in restricted
>> >     exec ccode in environment
>> >   File
>> "/home/bruce/Development/bossteam_dev/projects/yaw_dev/applications/welcome/views/generic.pdf",
>> > line 9, in <module>
>> >     pass
>> >   File
>> "/home/bruce/Development/bossteam_dev/projects/yaw_dev/gluon/contrib/generics.py",
>> > line 63, in pdf_from_html
>> >     return pyfpdf_from_html(html)
>> >   File
>> "/home/bruce/Development/bossteam_dev/projects/yaw_dev/gluon/contrib/generics.py",
>> > line 55, in pyfpdf_from_html
>> >     pdf.write_html(html,image_map=image_map)
>> >   File
>> "/home/bruce/Development/bossteam_dev/projects/yaw_dev/gluon/contrib/pyfpdf/html.py",
>> > line 388, in write_html
>> >     h2p.feed(text)
>> >   File "/usr/lib/python2.7/HTMLParser.py", line 109, in feed
>> >     self.goahead(0)
>> >   File "/usr/lib/python2.7/HTMLParser.py", line 151, in goahead
>> >     k = self.parse_starttag(i)
>> >   File "/usr/lib/python2.7/HTMLParser.py", line 272, in parse_starttag
>> >     self.handle_startendtag(tag, attrs)
>> >   File "/usr/lib/python2.7/HTMLParser.py", line 334, in
>> handle_startendtag
>> >     self.handle_starttag(tag, attrs)
>> >   File
>> "/home/bruce/Development/bossteam_dev/projects/yaw_dev/gluon/contrib/pyfpdf/html.py",
>> > line 262, in handle_starttag
>> >     x, y, w, h, link=self.href)
>> >   File
>> "/home/bruce/Development/bossteam_dev/projects/yaw_dev/gluon/contrib/pyfpdf/fpdf.py",
>> > line 807, in image
>> >     info=self._parsepng(name)
>> >   File
>> "/home/bruce/Development/bossteam_dev/projects/yaw_dev/gluon/contrib/pyfpdf/fpdf.py",
>> > line 1296, in _parsepng
>> >     f = urllib.urlopen(name)
>> >   File "/usr/lib/python2.7/urllib.py", line 84, in urlopen
>> >     return opener.open(url)
>> >   File "/usr/lib/python2.7/urllib.py", line 205, in open
>> >     return getattr(self, name)(url)
>> >   File "/usr/lib/python2.7/urllib.py", line 331, in open_http
>> >     h = httplib.HTTP(host)
>> >   File "/usr/lib/python2.7/httplib.py", line 1061, in __init__
>> >     self._setup(self._connection_class(host, port, strict))
>> >   File "/usr/lib/python2.7/httplib.py", line 693, in __init__
>> >     self._set_hostport(host, port)
>> >   File "/usr/lib/python2.7/httplib.py", line 718, in _set_hostport
>> >     raise InvalidURL("nonnumeric port: '%s'" % host[i+1:])
>> > InvalidURL: nonnumeric port: ''
>> >
>> > I also found this argument list to look very strange, look at the host
>> > string, plus port is NoneFunction argument list
>> >
>> > (self=<httplib.HTTPConnection instance>, host='127.0.0.1:8000http:',
>> > port=None)
>> >
>> > --
>> > --
>> > Regards,
>> > Bruce Wadehttp://
>> ca.linkedin.com/in/brucelwadehttp://www.wadecybertech.comhttp://www.warplydesigned.comhttp://www.fitnessfriendsfinder.com
>>
>
>
>
> --
> --
> Regards,
> Bruce Wade
> http://ca.linkedin.com/in/brucelwade
> http://www.wadecybertech.com
> http://www.warplydesigned.com
> http://www.fitnessfriendsfinder.com
>



-- 
-- 
Regards,
Bruce Wade
http://ca.linkedin.com/in/brucelwade
http://www.wadecybertech.com
http://www.warplydesigned.com
http://www.fitnessfriendsfinder.com

Reply via email to