diff options
| author | Naresh Choksy <nch@tinyerp.com> | 2009-05-06 10:43:29 +0530 |
|---|---|---|
| committer | Naresh Choksy <nch@tinyerp.com> | 2009-05-06 10:43:29 +0530 |
| commit | 891d05df2e2a200f1ff4ec23beb6498a17984c8f (patch) | |
| tree | 7b6dd92c0d18ba08b4d22b3f05b7c0dc20898d7b /bin/report/render/html2html | |
| parent | 044ac173b3f1c644d18a22fc9c1a9ec119797ac7 (diff) | |
| parent | 0bfbee835559db828f99243b31bd871a4ec06475 (diff) | |
merge
bzr revid: nch@tinyerp.com-20090506051329-ixasw1q9n5pv9vmw
Diffstat (limited to 'bin/report/render/html2html')
| -rw-r--r-- | bin/report/render/html2html/__init__.py | 26 | ||||
| -rw-r--r-- | bin/report/render/html2html/html2html.py | 62 |
2 files changed, 88 insertions, 0 deletions
diff --git a/bin/report/render/html2html/__init__.py b/bin/report/render/html2html/__init__.py new file mode 100644 index 00000000000..16385ae50a0 --- /dev/null +++ b/bin/report/render/html2html/__init__.py @@ -0,0 +1,26 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# $Id$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +from html2html import parseString + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/bin/report/render/html2html/html2html.py b/bin/report/render/html2html/html2html.py new file mode 100644 index 00000000000..7894dd78516 --- /dev/null +++ b/bin/report/render/html2html/html2html.py @@ -0,0 +1,62 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# $Id$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +from report.render.rml2pdf import utils +from lxml import etree +import copy +import pooler + + +class html2html(object): + def __init__(self, html, localcontext): + self.localcontext = localcontext + self.etree = html + self._node = None + + + def render(self): + def process_text(node,new_node): + if new_node.tag in ['story','tr','section']: + new_node.attrib.clear() + for child in utils._child_get(node, self): + new_child = copy.deepcopy(child) + new_node.append(new_child) + if len(child): + for n in new_child: + new_child.remove(n) + process_text(child, new_child) + else: + if new_child.tag=='img' and new_child.get('name'): + src = utils._process_text(self, new_child.get('name')) + if src : + new_child.set('src','data:image/gif;base64,%s'%src) + new_child.text = utils._process_text(self, child.text) + self._node = copy.deepcopy(self.etree) + for n in self._node: + self._node.remove(n) + process_text(self.etree, self._node) + return self._node + +def parseString(node, localcontext = {}): + r = html2html(node, localcontext) + return r.render() + |
