微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在odoo中通过python代码生成的报告中显示公司徽标

如何解决如何在odoo中通过python代码生成的报告中显示公司徽标

我有一个自定义的报告,以便将公司徽标添加到报告中,问题是整个报告是由代码生成的。我想在报告上打印公司徽标,我可以打印表明其工作正常的公司名称,但是带有徽标,由于路径问题,它似乎不起作用。 这是我的代码,其中包含我到目前为止所做的摘要

def get_pdf(self,options,minimal_layout=True):
        if not config['test_enable']:
            self = self.with_context(commit_assetsbundle=True)

        base_url = self.env['ir.config_parameter'].sudo().get_param('report.url') or self.env['ir.config_parameter'].sudo().get_param('web.base.url')
        rcontext = {
            'mode': 'print','base_url': base_url,'company': self.env.company,}

        body = self.env['ir.ui.view'].render_template(
            "account_reports.print_template",values=dict(rcontext),)
        body_html = self.with_context(print_mode=True).get_html(options)
        logging.info(self.env.user.company_id.name)
        logging.info(self.env.user.company_id.logo)
        test = "<header>"\
               "<img style='width: 7.0cm; height: 1.8cm;' src='/web/binary/{}' alt='logo'/>"\
               "</header>".format(self.env.user.company_id.logo)
        ttt = bytes(test,'utf-8')

就像我说的那样,即使系统中设置了徽标,它也会显示公司名称,而不显示徽标。

解决方法

所以我能够修复它,我记得odoo具有image_data_url函数,该函数用于获取存储在数据库中的图像的路径并显示在qweb报告模板中,因此我在odoo中检查并找到了该函数。工具,然后我在模型中调用了该函数,并将公司徽标作为该函数的参数传递给该函数,并在image src属性中对其进行了调用,因此看起来像这样

from odoo import tools
test = "<header style='margin-left: 750px;'>"\
               "<img style='width: 7.0cm; height: 1.8cm;'" \
               "src='{}' alt='logo'/>"\
               "</header>". \
               format(tools.image_data_uri(self.env.user.company_id.logo))
        ttt = bytes(test,'utf-8')```

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。