Port txt report to new report engine.
[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, rml, localcontext= None, datas={}):
56         super(rml2txt, self).__init__(datas)
57         self.rml = rml
58         self.localcontext = localcontext
59         self.output_type = 'txt'
60
61     def _render(self):
62         return txtizer.parseString(self.rml, self.localcontext)
63
64 class odt2odt(render.render):
65     def __init__(self, rml, localcontext = None, datas = {}):
66         render.render.__init__(self, datas)
67         self.rml_dom = rml
68         self.localcontext = localcontext
69         self.output_type = 'odt'
70
71
72     def _render(self):
73         return odt.parseNode(self.rml_dom,self.localcontext)
74
75 class html2html(render.render):
76     def __init__(self, rml, localcontext = None, datas = {}):
77         render.render.__init__(self, datas)
78         self.rml_dom = rml
79         self.localcontext = localcontext
80         self.output_type = 'html'
81         
82     def _render(self):
83         return html.parseString(self.rml_dom,self.localcontext)
84
85 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
86