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.