Changeset 112:e22eeb00aa5a for examples/demo_odf.py
- Timestamp:
- 01/27/09 07:36:35 (18 months ago)
- Branch:
- default
- Files:
-
- 1 modified
-
examples/demo_odf.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
examples/demo_odf.py
r107 r112 1 from cStringIO import StringIO 2 from common import Invoice, repos, inv 3 import demo_chart 1 from os.path import abspath 2 from relatorio import Report 4 3 5 repos.add_report(Invoice, 'application/vnd.oasis.opendocument.text', 6 'basic.odt', report_name='basic') 7 repos.add_report(Invoice, 'application/vnd.oasis.opendocument.text', 8 'invoice.odt', report_name='complicated') 9 repos.add_report(Invoice, 'application/vnd.oasis.opendocument.spreadsheet', 10 'pivot.ods', report_name='pivot') 11 repos.add_report(Invoice, 'application/vnd.oasis.opendocument.presentation', 12 'presentation.odp', report_name='presentation') 13 repos.add_report(None, 'application/vnd.oasis.opendocument.text', 14 'columns.odt', report_name='column') 4 # test data 5 from common import inv 6 7 ODT_MIME = 'application/vnd.oasis.opendocument.text' 8 ODS_MIME = 'application/vnd.oasis.opendocument.spreadsheet' 9 ODP_MIME = 'application/vnd.oasis.opendocument.presentation' 15 10 16 11 if __name__ == '__main__': 17 # Add a chart to the invoice18 inv['chart'] = repos.classes[Invoice].ids['pie']19 20 12 # ODT 21 13 print "generating output_basic.odt... ", 22 basic_report, _ = repos.classes[Invoice].ids['basic']23 data = basic_report(o=inv).render().getvalue()24 file('output_basic.odt', 'wb').write( data)14 report = Report(abspath('basic.odt'), ODT_MIME) 15 content = report(o=inv).render().getvalue() 16 file('output_basic.odt', 'wb').write(content) 25 17 print "done" 26 18 19 # we could also use an opendocument template directly 20 # from relatorio.templates import opendocument 21 # template = opendocument.Template(source=None, filepath='basic.odt') 22 # content = template.generate(o=inv).render().getvalue() 23 # file('output_basic.odt', 'wb').write(content) 24 27 25 print "generating output_complicated.odt... ", 28 report, _ = repos.classes[Invoice].ids['complicated'] 29 data = report(o=inv).render().getvalue() 30 file('output_complicated.odt', 'wb').write(data) 26 # Add a chart to the invoice 27 inv['chart'] = (Report(abspath('pie_chart'), 'image/png'), 'image/png') 28 report = Report(abspath('complicated.odt'), ODT_MIME) 29 content = report(o=inv).render().getvalue() 30 file('output_complicated.odt', 'wb').write(content) 31 31 print "done" 32 32 33 33 print "generating output_columns.odt... ", 34 column_report, _ = repos.classes[None].ids['column']34 report = Report(abspath('columns.odt'), ODT_MIME) 35 35 lst = [[], ['i'], ['a', 'b'], [1, 2, 3], ['I', 'II', 'III', 'IV']] 36 36 titles = ['first', 'second', 'third', 'fourth'] 37 data = column_report(titles=titles, lst=lst).render().getvalue()38 file('output_columns.odt', 'wb').write( data)37 content = report(titles=titles, lst=lst).render().getvalue() 38 file('output_columns.odt', 'wb').write(content) 39 39 print "done" 40 40 41 41 # ODS 42 42 print "generating output_pivot.ods... ", 43 ods_report, _ = repos.classes[Invoice].ids['pivot']44 data = ods_report(o=inv).render().getvalue()45 file('output_pivot.ods', 'wb').write( data)43 report = Report(abspath('pivot.ods'), ODS_MIME) 44 content = report(o=inv).render().getvalue() 45 file('output_pivot.ods', 'wb').write(content) 46 46 print "done" 47 47 48 48 # ODP 49 49 print "generating output_presentation.odp... ", 50 odp_report, _ = repos.classes[Invoice].ids['presentation']51 data = odp_report(o=inv).render().getvalue()52 file('output_presentation.odp', 'wb').write( data)50 report = Report(abspath('presentation.odp'), ODP_MIME) 51 content = report(o=inv).render().getvalue() 52 file('output_presentation.odp', 'wb').write(content) 53 53 print "done" 54 54
