The latest fpdf code commit is dated August 15. I checked its source code 
against the one bundled with web2py 2.6.4-stable and they appear to be 
identical.

On Tuesday, October 29, 2013 8:06:23 PM UTC+1, Massimo Di Pierro wrote:
>
> Should I do that too?
>
> On Tuesday, 29 October 2013 13:30:58 UTC-5, Mariano Reingart wrote:
>>
>> You can try to download the fpdf source code from the repository (see 
>> the download zip link) and update your web2py distribution: 
>>
>> http://code.google.com/p/pyfpdf/source/browse/ 
>>
>> Please let follow this on the fpdf site: 
>>
>> http://code.google.com/p/pyfpdf/issues/detail?id=66 
>>
>> Thanks for reporting it! 
>>
>> Mariano Reingart 
>> http://www.sistemasagiles.com.ar 
>> http://reingart.blogspot.com 
>>
>>
>> On Tue, Oct 29, 2013 at 2:41 PM, step <step...@gmail.com> wrote: 
>> > Fair enough, Richard, I'm providing sample code here, and I will link 
>> to it 
>> > in the issue report. 
>> > Comments in the sample code explain the 0x95 codec error and also ask 
>> some 
>> > questions. 
>> > Thanks for your help. 
>> > 
>> > Download TTF font DejaVuSans.ttf and copy it into gluon/contrib/fpdf/ 
>> > You can download it from the FPDF site 
>> > 
>> http://code.google.com/p/pyfpdf/downloads/detail?name=fpdf_unicode_font_pack.zip&can=2&q=
>>  
>> > 
>> > Add this function to controllers/default.py 
>> > 
>> > def issue(): return dict() 
>> > 
>> > 
>> > Replace views/generic.pdf 
>> > {{""" 
>> > replace the standard views/generic.pdf file with this file 
>> > """ 
>> > import os 
>> > # we comment this as we are using a custom model function 
>> > # from gluon.contrib.generics import pdf_from_html 
>> > filename = '%s/%s.html' % (request.controller,request.function) 
>> > if os.path.exists(os.path.join(request.folder,'views',filename)): 
>> >     html=response.render(filename) 
>> > else: 
>> >     html=BODY(BEAUTIFY(response._vars)).xml() 
>> > pass 
>> > # note the pyfpdf instead of pdf in the function call 
>> > # pyfpdf is defined in views/issue.html 
>> > =pyfpdf_from_html(html) 
>> > }} 
>> > 
>> > Create views/default/issue.html 
>> > {{""" 
>> > Put this file in [app]/default/issue.html then browse 
>> .../default/issue.pdf. 
>> > You should see a PDF file with two bullets, both with garbage 
>> characters, 
>> > one for an accented a, the other one for the euro sign. 
>> > Now comment out the line after #1# below and uncomment the similar line 
>> > after #2#. 
>> > The aim is to print out the two characters correctly. Browse again the 
>> pdf 
>> > page to test... 
>> > Instead you will get a codec error involving character 0x95. 
>> > 0x95 is the bullet sign that FPDF adds for UL() below (counter-proof: 
>> > replace OL() for UL() to get going) 
>> > This reproduces issue #66 that I reported on the FPDF google code site 
>> > http://code.google.com/p/pyfpdf/issues/detail?id=66. 
>> > 
>> > I'm still left scratching my head on how to print the euro character 
>> and the 
>> > accented a character at the same time. 
>> > I tried playing with codecs in #3# below to no avail. 
>> > """ 
>> > def text(a): 
>> >     print repr(a) 
>> >     return a.decode("utf-8").encode("utf-8") 
>> >     #3# setting encode 'latin-1' prints accented characters (but errors 
>> out 
>> > on euro, which needs utf-8 encoding) 
>> > 
>> > def pyfpdf_from_html(html): 
>> >     import os 
>> >     from gluon.contrib.fpdf import FPDF, HTMLMixin 
>> > 
>> >     class MyFPDF(FPDF, HTMLMixin): 
>> >         pass 
>> > 
>> >     pdf = MyFPDF() 
>> >     pdf.add_font('DejaVu', '', 'DejaVuSans.ttf', uni=True) 
>> >     pdf.set_font('DejaVu', '', 12) 
>> >     pdf.add_page() 
>> >     #1#this works but the default font doesn't include the euro 
>> character 
>> >     pdf.write_html('%s' % html) 
>> >     #2#this errors out with 'utf8' codec can't decode byte 0x95 in 
>> position 
>> > 5: invalid start byte 
>> >     ###note that 0x95 is the bullet sign that FPDF adds for UL() below 
>> - 
>> > replace it with OL() to get going 
>> >     #pdf.write_html('<font face="DejaVu" size="12">%s<font>' % html) 
>> >     return XML(pdf.output(dest='S')) 
>> > }} 
>> > 
>> > {{=HTML(BODY(UL([text('à'),text('€')])))}} 
>> > 
>> > 
>> > 
>> > On Monday, October 28, 2013 9:46:10 PM UTC+1, Richard wrote: 
>> >> 
>> >> did you user your_string.decode('utf8') before passing to FPDF?? 
>> >> 
>> >> I think you have mistake in your code, you should provide example code 
>> in 
>> >> you issue report!! 
>> >> 
>> >> Richard 
>> >> 
>> >> 
>> >> On Mon, Oct 28, 2013 at 2:40 PM, step <step...@gmail.com> wrote: 
>> >>> 
>> >>> I discovered and reported in 
>> >>> http://code.google.com/p/pyfpdf/issues/detail?id=66 an issue with 
>> >>> gluon/contrib/FPFD. Basically, rendering HTML <UL> tags as PDF may 
>> trigger a 
>> >>> utf8 codec error because fpdf/html.py sets the bullet character as 
>> '\x95'. 
>> >>> As a work-around I have replaced '\x95' with '*'. 
>> >>> 
>> >>> -- 
>> >>> 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 web2py+un...@googlegroups.com. 
>> >>> 
>> >>> For more options, visit https://groups.google.com/groups/opt_out. 
>> >> 
>> >> 
>> > -- 
>> > 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 web2py+un...@googlegroups.com. 
>> > For more options, visit https://groups.google.com/groups/opt_out. 
>>
>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to