e695cb39311ec49ed2636fee7480c26699ed5cd9
[odoo/odoo.git] / bin / report / render / rml.py
1 # -*- encoding: utf-8 -*-
2 ##############################################################################
3 #
4 #    OpenERP, Open Source Management Solution
5 #    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
6 #    $Id$
7 #
8 #    This program is free software: you can redistribute it and/or modify
9 #    it under the terms of the GNU General Public License as published by
10 #    the Free Software Foundation, either version 3 of the License, or
11 #    (at your option) any later version.
12 #
13 #    This program is distributed in the hope that it will be useful,
14 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
15 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 #    GNU General Public License for more details.
17 #
18 #    You should have received a copy of the GNU General Public License
19 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
20 #
21 ##############################################################################
22
23 import render
24 import rml2pdf
25 import rml2html as htmlizer
26 import rml2txt as txtizer
27 import odt2odt as odt
28 import html2html as html
29
30
31 class rml(render.render):
32     def __init__(self, rml, localcontext = None, datas={}, path='.', title=None):
33         render.render.__init__(self, datas)
34         self.localcontext = localcontext
35         self.rml = rml
36         self.output_type = 'pdf'
37         self.path = path
38         self.title=title
39
40
41     def _render(self):
42         return rml2pdf.parseNode(self.rml, self.localcontext, images=self.bin_datas, path=self.path,title=self.title)
43
44 class rml2html(render.render):
45     def __init__(self, rml,localcontext = None, datas = {}):
46         super(rml2html, self).__init__(datas)
47         self.rml = rml
48         self.localcontext = localcontext
49         self.output_type = 'html'
50
51     def _render(self):
52         return htmlizer.parseString(self.rml,self.localcontext)
53
54 class rml2txt(render.render):
55     def __init__(self, xml, datas={}):
56         super(rml2txt, self).__init__(datas)
57         self.xml = xml
58         self.output_type = 'txt'
59
60     def _render(self):
61         return txtizer.parseString(self.xml)
62
63 class odt2odt(render.render):
64     def __init__(self, rml, localcontext = None, datas = {}):
65         render.render.__init__(self, datas)
66         self.rml_dom = rml
67         self.localcontext = localcontext
68         self.output_type = 'odt'
69
70
71     def _render(self):
72         return odt.parseNode(self.rml_dom,self.localcontext)
73
74 class html2html(render.render):
75     def __init__(self, rml, localcontext = None, datas = {}):
76         render.render.__init__(self, datas)
77         self.rml_dom = rml
78         self.localcontext = localcontext
79         self.output_type = 'html'
80         
81     def _render(self):
82         return html.parseString(self.rml_dom,self.localcontext)
83
84 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
85