I am not having that problem when testing your code with pyfpdf 1.7.2,
using the same font. I noticed web2py 2.12.3 is still using pyfpdf 1.7.1.
I recommend temporarily replacing pyfpdf folder with new version an try
again.
On Saturday, November 28, 2015 at 1:46:12 PM UTC-4, mweissen wrote:
>
> Hi, I have tried again to use fpdf.
>
> *1st try:*
>
> from gluon.contrib.fpdf import FPDF
>
> def test():
> pdf = FPDF('P', 'mm', 'A4')
> pdf.add_page()
> pdf.set_font('Arial', 'B', 16)
> pdf.cell(40,10,'Hello World')
> response.headers['Content-Type'] = 'application/pdf'
> return XML(pdf.output('', 'S'))
>
>
> Ok, that's simple and it works fine.
>
> *2nd try:*
>
> Now I want to use the unicode version.
> There is a example: https://code.google.com/p/pyfpdf/wiki/Unicode:
>
> *Before you can use UTF-8, you have to install at least one Unicode font
> in the font directory (or system font folder).*
>
>
> But there is no font directory in fpdf!
>
> It would be nice to have a complete example how to use fpdf in web2py!
>
> After some trials I had to copy the *font directory* containing a lot of
> "DejaVu*"-files to the gluon/contrib/fpdf directory.
>
> The structure is: gluon/contrib/fpdf/font
>
>
> from gluon.contrib.fpdf import FPDF
>
> def test():
> pdf = FPDF('P', 'mm', 'A4')
> pdf.add_page()
> pdf.add_font('DejaVu', '', 'DejaVuSansCondensed.ttf', uni=True)
> pdf.set_font('DejaVu', '', 14)
> pdf.cell(40,10,'Hello World äöü€')
>
> response.headers['Content-Type'] = 'application/pdf'
> return XML(pdf.output('', 'S'))
>
>
> And now I get an error message:
>
> <type 'exceptions.ValueError'> could not convert string to float
>
> Version
> web2py™Version 2.12.3-stable+timestamp.2015.08.19.00.18.03PythonPython
> 2.7.6: /usr/local/bin/python (prefix: /usr)
> Traceback
>
> 1.
> 2.
> 3.
> 4.
> 5.
> 6.
> 7.
> 8.
> 9.
> 10.
> 11.
> 12.
>
> Traceback (most recent call last):
> File "/home/www-data/web2py/gluon/restricted.py", line 227, in restricted
> exec ccode in environment
> File "/home/www-data/web2py/applications/m_abschluss/controllers/test.py"
> <https://www.sinfs.at/admin/default/edit/m_abschluss/controllers/test.py>,
> line 54, in <module>
> File "/home/www-data/web2py/gluon/globals.py", line 412, in <lambda>
> self._caller = lambda f: f()
> File "/home/www-data/web2py/applications/m_abschluss/controllers/test.py"
> <https://www.sinfs.at/admin/default/edit/m_abschluss/controllers/test.py>,
> line 26, in test
> pdf.add_font('DejaVu', '', 'DejaVuSansCondensed.ttf', uni=True)
> File "/home/www-data/web2py/gluon/contrib/fpdf/fpdf.py", line 432, in
> add_font
> font_dict = pickle.load(fh)
> ValueError: could not convert string to float
>
>
>
> What is the right way to use fpdf with the whole unicode character set
> in web2py?
>
> Regards, Martin
>
>
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.