root/examples/demo_odf.py @ 107:4613bf1cfa8d

Revision 107:4613bf1cfa8d, 2.1 kB (checked in by Ga?tan de Menten <ged@…>, 4 years ago)

- improved column looping example, and added a bit of documentation within the

example.

- changed the name of the files generated by examples
- added some prints to the examples to let people know what's happening

Line 
1from cStringIO import StringIO
2from common import Invoice, repos, inv
3import demo_chart
4
5repos.add_report(Invoice, 'application/vnd.oasis.opendocument.text',
6                 'basic.odt', report_name='basic')
7repos.add_report(Invoice, 'application/vnd.oasis.opendocument.text',
8                 'invoice.odt', report_name='complicated')
9repos.add_report(Invoice, 'application/vnd.oasis.opendocument.spreadsheet',
10                 'pivot.ods', report_name='pivot')
11repos.add_report(Invoice, 'application/vnd.oasis.opendocument.presentation',
12                 'presentation.odp', report_name='presentation')
13repos.add_report(None, 'application/vnd.oasis.opendocument.text',
14                 'columns.odt', report_name='column')
15
16if __name__ == '__main__':
17    # Add a chart to the invoice
18    inv['chart'] = repos.classes[Invoice].ids['pie']
19
20    # ODT
21    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)
25    print "done"
26
27    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)
31    print "done"
32
33    print "generating output_columns.odt... ",
34    column_report, _ = repos.classes[None].ids['column']
35    lst = [[], ['i'], ['a', 'b'], [1, 2, 3], ['I', 'II', 'III', 'IV']]
36    titles = ['first', 'second', 'third', 'fourth']
37    data = column_report(titles=titles, lst=lst).render().getvalue()
38    file('output_columns.odt', 'wb').write(data)
39    print "done"
40
41    # ODS
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)
46    print "done"
47
48    # ODP
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)
53    print "done"
Note: See TracBrowser for help on using the browser.