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.

Reply via email to