def from_data(self, uid, fields, rows, model): pageSize=[210.0,297.0] new_doc = etree.Element("report") config = etree.SubElement(new_doc, 'config') def _append_node(name, text): n = etree.SubElement(config, name) n.text = text _append_node('date', time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y')))) _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(pageSize)) _append_node('PageWidth', '%.2f' % (pageSize[0] * 2.8346,)) _append_node('PageHeight', '%.2f' %(pageSize[1] * 2.8346,)) _append_node('PageFormat', 'a4') _append_node('header-date', time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y')))) l = [] t = 0 temp = [] tsum = [] header = etree.SubElement(new_doc, 'header') for f in fields: field = etree.SubElement(header, 'field') field.text = tools.ustr(f) lines = etree.SubElement(new_doc, 'lines') for row_lines in rows: node_line = etree.SubElement(lines, 'row') for row in row_lines: col = etree.SubElement(node_line, 'col', para='yes', tree='no') col.text = tools.ustr(row) transform = etree.XSLT( etree.parse(os.path.join(tools.config['root_path'], 'addons/base/report/custom_new.xsl'))) rml = etree.tostring(transform(new_doc)) self.obj = trml2pdf.parseNode(rml, title='Printscreen') return self.obj
def from_data(self, uid, fields, rows, company_name): pageSize = [210.0, 297.0] new_doc = etree.Element("report") config = etree.SubElement(new_doc, 'config') def _append_node(name, text): n = etree.SubElement(config, name) n.text = text _append_node( 'date', time.strftime( str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y')))) _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(pageSize)) _append_node('PageWidth', '%.2f' % (pageSize[0] * 2.8346, )) _append_node('PageHeight', '%.2f' % (pageSize[1] * 2.8346, )) _append_node('PageFormat', 'a4') _append_node( 'header-date', time.strftime( str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y')))) _append_node('company', company_name) skip_index = [] header = etree.SubElement(new_doc, 'header') i = 0 for f in fields: if f.get('header_data_id', False): value = f.get('header_name', "") field = etree.SubElement(header, 'field') field.text = tools.ustr(value) else: skip_index.append(i) i += 1 lines = etree.SubElement(new_doc, 'lines') for row_lines in rows: node_line = etree.SubElement(lines, 'row') j = 0 for row in row_lines: if not j in skip_index: para = "yes" tree = "no" value = row.get('data', '') if row.get('bold', False): para = "group" if row.get('number', False): tree = "float" col = etree.SubElement(node_line, 'col', para=para, tree=tree) col.text = tools.ustr(value) j += 1 transform = etree.XSLT( etree.parse( os.path.join(tools.config['root_path'], 'addons/base/report/custom_new.xsl'))) rml = etree.tostring(transform(new_doc)) self.obj = trml2pdf.parseNode(rml, title='Printscreen') return self.obj
def from_data(self, uid, fields, rows, company_name): pageSize=[210.0,297.0] new_doc = etree.Element("report") config = etree.SubElement(new_doc, 'config') def _append_node(name, text): n = etree.SubElement(config, name) n.text = text _append_node('date', time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y')))) _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(pageSize)) _append_node('PageWidth', '%.2f' % (pageSize[0] * 2.8346,)) _append_node('PageHeight', '%.2f' %(pageSize[1] * 2.8346,)) _append_node('PageFormat', 'a4') _append_node('header-date', time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y')))) _append_node('company', company_name) l = [] t = 0 temp = [] tsum = [] skip_index = [] header = etree.SubElement(new_doc, 'header') i = 0 for f in fields: if f.get('header_data_id', False): value = f.get('header_name', "") field = etree.SubElement(header, 'field') field.text = tools.ustr(value) else: skip_index.append(i) i += 1 lines = etree.SubElement(new_doc, 'lines') for row_lines in rows: node_line = etree.SubElement(lines, 'row') j = 0 for row in row_lines: if not j in skip_index: para = "yes" tree = "no" value = row.get('data', '') if row.get('bold', False): para = "group" if row.get('number', False): tree = "float" col = etree.SubElement(node_line, 'col', para=para, tree=tree) col.text = tools.ustr(value) j += 1 transform = etree.XSLT( etree.parse(os.path.join(tools.config['root_path'], 'addons/base/report/custom_new.xsl'))) rml = etree.tostring(transform(new_doc)) # Update system font database if it hasn't been called yet, so that system fonts are used by reportlab with better glyph coverage registry = openerp.registry(request.cr.dbname) registry['res.font'].font_scan(request.cr, SUPERUSER_ID, lazy=True, context=request.context) self.obj = trml2pdf.parseNode(rml, title='Printscreen') return self.obj
def from_data(self, uid, fields, rows, company_name): pageSize = [210.0, 297.0] new_doc = etree.Element("report") config = etree.SubElement(new_doc, "config") def _append_node(name, text): n = etree.SubElement(config, name) n.text = text _append_node("date", time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace("%y", "%Y")))) _append_node("PageSize", "%.2fmm,%.2fmm" % tuple(pageSize)) _append_node("PageWidth", "%.2f" % (pageSize[0] * 2.8346,)) _append_node("PageHeight", "%.2f" % (pageSize[1] * 2.8346,)) _append_node("PageFormat", "a4") _append_node("header-date", time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace("%y", "%Y")))) _append_node("company", company_name) l = [] t = 0 temp = [] tsum = [] skip_index = [] header = etree.SubElement(new_doc, "header") i = 0 for f in fields: if f.get("header_data_id", False): value = f.get("header_name", "") field = etree.SubElement(header, "field") field.text = tools.ustr(value) else: skip_index.append(i) i += 1 lines = etree.SubElement(new_doc, "lines") for row_lines in rows: node_line = etree.SubElement(lines, "row") j = 0 for row in row_lines: if not j in skip_index: para = "yes" tree = "no" value = row.get("data", "") if row.get("bold", False): para = "group" if row.get("number", False): tree = "float" col = etree.SubElement(node_line, "col", para=para, tree=tree) col.text = tools.ustr(value) j += 1 transform = etree.XSLT( etree.parse(os.path.join(tools.config["root_path"], "addons/base/report/custom_new.xsl")) ) rml = etree.tostring(transform(new_doc)) self.obj = trml2pdf.parseNode(rml, title="Printscreen") return self.obj
def from_data(self, uid, fields, rows, model): pageSize = [210.0, 297.0] new_doc = etree.Element("report") config = etree.SubElement(new_doc, 'config') def _append_node(name, text): n = etree.SubElement(config, name) n.text = text _append_node( 'date', time.strftime( str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y')))) _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(pageSize)) _append_node('PageWidth', '%.2f' % (pageSize[0] * 2.8346, )) _append_node('PageHeight', '%.2f' % (pageSize[1] * 2.8346, )) _append_node('PageFormat', 'a4') _append_node( 'header-date', time.strftime( str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y')))) l = [] t = 0 temp = [] tsum = [] header = etree.SubElement(new_doc, 'header') for f in fields: field = etree.SubElement(header, 'field') field.text = tools.ustr(f) lines = etree.SubElement(new_doc, 'lines') for row_lines in rows: node_line = etree.SubElement(lines, 'row') for row in row_lines: col = etree.SubElement(node_line, 'col', para='yes', tree='no') col.text = tools.ustr(row) transform = etree.XSLT( etree.parse( os.path.join(tools.config['root_path'], 'addons/base/report/custom_new.xsl'))) rml = etree.tostring(transform(new_doc)) self.obj = trml2pdf.parseNode(rml, title='Printscreen') return self.obj
def from_data(self, uid, fields, rows, company_name, company_logo, current_date): """ :param company_name: string :param company_logo: binary file """ page_size = [210.0, 297.0] new_doc = etree.Element("report") config = etree.SubElement(new_doc, 'config') def _append_node(name, text): n = etree.SubElement(config, name) n.text = text _append_node('date', current_date) _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(page_size)) _append_node('PageWidth', '%.2f' % (page_size[0] * 2.8346,)) _append_node('PageHeight', '%.2f' %(page_size[1] * 2.8346,)) _append_node('PageFormat', 'a4') _append_node('header-date', current_date) _append_node('company', company_name) _append_node('company_logo', company_logo) l = [] t = 0 temp = [] tsum = [] skip_index = [] header = etree.SubElement(new_doc, 'header') i = 0 for f in fields: if f.get('header_data_id', False): value = f.get('header_name', "") field = etree.SubElement(header, 'field') field.text = tools.ustr(value) else: skip_index.append(i) i += 1 lines = etree.SubElement(new_doc, 'lines') for row_lines in rows: node_line = etree.SubElement(lines, 'row') j = 0 for row in row_lines: if j not in skip_index: para = "yes" tree = "no" value = row.get('data', '') if row.get('bold', False): para = "group" if row.get('number', False): tree = "float" col = etree.SubElement(node_line, 'col', para=para, tree=tree) col.text = tools.ustr(value) j += 1 current_dir = os.path.dirname(os.path.abspath(__file__)) transform = etree.XSLT( etree.parse(os.path.join(current_dir, 'report/main_rml_layout.xsl'))) rml = etree.tostring(transform(new_doc)) localcontext = {'company_logo': company_logo, 'internal_header': False,} self.obj = trml2pdf.parseNode(rml, localcontext, title='Printscreen') return self.obj
def from_data(self, uid, fields, rows, company_name): pageSize = [210.0, 297.0] new_doc = etree.Element("report") config = etree.SubElement(new_doc, 'config') def _append_node(name, text): n = etree.SubElement(config, name) n.text = text _append_node( 'date', time.strftime( str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y')))) _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(pageSize)) _append_node('PageWidth', '%.2f' % (pageSize[0] * 2.8346, )) _append_node('PageHeight', '%.2f' % (pageSize[1] * 2.8346, )) _append_node('PageFormat', 'a4') _append_node( 'header-date', time.strftime( str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y')))) _append_node('company', company_name) l = [] t = 0 temp = [] tsum = [] skip_index = [] header = etree.SubElement(new_doc, 'header') i = 0 for f in fields: if f.get('header_data_id', False): value = f.get('header_name', "") field = etree.SubElement(header, 'field') field.text = tools.ustr(value) else: skip_index.append(i) i += 1 lines = etree.SubElement(new_doc, 'lines') for row_lines in rows: node_line = etree.SubElement(lines, 'row') j = 0 for row in row_lines: if not j in skip_index: para = "yes" tree = "no" value = row.get('data', '') if row.get('bold', False): para = "group" if row.get('number', False): tree = "float" col = etree.SubElement(node_line, 'col', para=para, tree=tree) col.text = tools.ustr(value) j += 1 transform = etree.XSLT( etree.parse( os.path.join(tools.config['root_path'], 'addons/base/report/custom_new.xsl'))) rml = etree.tostring(transform(new_doc)) # Update system font database if it hasn't been called yet, so that system fonts are used by reportlab with better glyph coverage registry = openerp.registry(request.cr.dbname) registry['res.font'].font_scan(request.cr, SUPERUSER_ID, lazy=True, context=request.context) self.obj = trml2pdf.parseNode(rml, title='Printscreen') return self.obj
def from_data(self, uid, fields, rows, company_name, company_logo, current_date): """ :param company_name: string :param company_logo: binary file """ page_size = [210.0, 297.0] new_doc = etree.Element("report") config = etree.SubElement(new_doc, 'config') def _append_node(name, text): n = etree.SubElement(config, name) n.text = text _append_node('date', current_date) _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(page_size)) _append_node('PageWidth', '%.2f' % (page_size[0] * 2.8346, )) _append_node('PageHeight', '%.2f' % (page_size[1] * 2.8346, )) _append_node('PageFormat', 'a4') _append_node('header-date', current_date) _append_node('company', company_name) _append_node('company_logo', company_logo) l = [] t = 0 temp = [] tsum = [] skip_index = [] header = etree.SubElement(new_doc, 'header') i = 0 for f in fields: if f.get('header_data_id', False): value = f.get('header_name', "") field = etree.SubElement(header, 'field') field.text = tools.ustr(value) else: skip_index.append(i) i += 1 lines = etree.SubElement(new_doc, 'lines') for row_lines in rows: node_line = etree.SubElement(lines, 'row') j = 0 for row in row_lines: if j not in skip_index: para = "yes" tree = "no" value = row.get('data', '') if row.get('bold', False): para = "group" if row.get('number', False): tree = "float" col = etree.SubElement(node_line, 'col', para=para, tree=tree) col.text = tools.ustr(value) j += 1 current_dir = os.path.dirname(os.path.abspath(__file__)) transform = etree.XSLT( etree.parse(os.path.join(current_dir, 'report/main_rml_layout.xsl'))) rml = etree.tostring(transform(new_doc)) localcontext = { 'company_logo': company_logo, 'internal_header': False, } self.obj = trml2pdf.parseNode(rml, localcontext, title='Printscreen') return self.obj