report_xml.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:odoo-report 作者: vertelab 项目源码 文件源码
def create(self, cr, uid, ids, data, context=None):
        pool = registry(cr.dbname)
        merger = PdfFileMerger()
        outfiles = []
        for p in pool.get(self.model).read(cr,uid,ids):
            outfiles.append(self.newfilename())
            sla = self.render(cr,uid,p,data.get('template') or self.template)
            if self.report_type == 'scribus_sla':
                os.unlink(outfiles[-1])
                return (sla.read(),'sla')
            command = "xvfb-run -a scribus-ng -ns -g %s -py %s -pa -o %s" % (sla.name,os.path.join(get_module_path('report_scribus'), 'scribus.py'),outfiles[-1])
            _logger.info(command)
            res = os.system(command)
            sla.close()
            if not os.path.exists(outfiles[-1]) or os.stat(outfiles[-1]).st_size == 0:
                raise MissingError('There are something wrong with the template or scribus installation')
            merger.append(PdfFileReader(file(outfiles[-1], 'rb')))
        outfile = tempfile.NamedTemporaryFile(mode='w+b',suffix='.pdf')
        merger.write(outfile.name)
        for filename in outfiles:
            os.unlink(filename)
        outfile.seek(0)
        pdf = outfile.read()
        outfile.close()
        return (pdf,'pdf')
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号