如何在Odoo / OpenERP中的mako报告中打印条形码?

ChesuCR

我可以在报告中打印这样的静态图像:

<img src="data:image/png;base64,${obj.company_id.logo}"/>

而且我可以像这样用base64代码打印图像:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAABkCAIAAADVI9l0AAAC/0lEQVR4nO3Vr0vjcRzH8XFF1gw2WRUMFrGvjWFbtdhk2PYnmASTsCSsr1hNwpIwVu1iG9aB/a5+7iP34b7cheNej0f9vD8/vt/y7H3/l2w2m97PttttOTCdTsvV8XhcnbC3t9f7tYuLi07vmc/n5fbBYNCev7m5adz+1f39fbl9tVpVA7vdrtODK+fn5+VpV1dX5erHx0d13Xq97nT+0dFRuf3u7q5cfXl5aX/+YrHodN1kMmmctr+/X80Ph8NyYDablatvb2/VCa+vr53eU7m+vi5PG41G1UC/3y8HlstlubpcLsvVfr9fbR+NRo3PPzw8rObPzs4a8ycnJ+3Pmc1m5fxwOGzPX15elvOTyaQ9X1ksFuX2g4ODTtu/Oj4+Lg+8vb0tV9frdePn9Hq9h4eHcv7p6ak9//j42HjMbrer5lerVWP+/f29fV3l9PS0OmEwGJQD8/m8XH1+fq5O+Pz8/K3f+gvj8bg8bTqdlqvb7ba6brPZ/Ml1f923Tr8bAP4zQghANCEEIJoQAhBNCAGIJoQARBNCAKIJIQDRhBCAaEIIQDQhBCCaEAIQTQgBiCaEAEQTQgCiCSEA0YQQgGhCCEA0IQQgmhACEE0IAYgmhABEE0IAogkhANGEEIBoQghANCEEIJoQAhBNCAGIJoQARBNCAKIJIQDRhBCAaEIIQDQhBCCaEAIQTQgBiCaEAEQTQgCiCSEA0YQQgGhCCEA0IQQgmhACEE0IAYgmhABEE0IAogkhANGEEIBoQghANCEEIJoQAhBNCAGIJoQARBNCAKIJIQDRhBCAaEIIQDQhBCCaEAIQTQgBiCaEAEQTQgCiCSEA0YQQgGhCCEA0IQQgmhACEE0IAYgmhABEE0IAogkhANGEEIBoQghANCEEIJoQAhBNCAGIJoQARBNCAKIJIQDRhBCAaEIIQDQhBCCaEAIQTQgBiCaEAEQTQgCiCSEA0YQQgGhCCEA0IQQgmhACEE0IAYgmhABEE0IAogkhANGEEIBoQghANCEEINoP1gJ3cMlMpaoAAAAASUVORK5CYII=" style="width:300px;height:50px" /> 

但是,如何从URL打印图像?有没有一种方法可以在呈现报告时将图像动态编码为base64?

<img src="img/logo.png" />

实际上,我要执行的操作是在使用mako创建的报告中打印条形码。条形码是使用URL使用控制器创建的,因此我需要创建条形码图像,如下所示:

<img src="/report/barcode/?type=EAN13&amp;value=5546903283256&amp;width=600&amp;height=100" style="width:300px;height:50px"/>

我怎样才能做到这一点?

更新:我也尝试过

<img src="/report/barcode/?type=EAN13&value=5546903283256&width=600&height=100" style="width:300px;height:50px"/>

如果我同时尝试了最后两个选项,则会收到此错误消息:

ERROR dnname openerp.service.report: Exception: ('Webkit error', "The command 'wkhtmltopdf' failed with error code = 1. Message: The following diagnosis message was provided:\nExit with code 1 due to network error: ContentNotFoundError\n")
Traceback (most recent call last):
  File "/opt/odoo/odoo_pan/src/openerp/service/report.py", line 93, in go
    result, format = openerp.report.render_report(cr, uid, ids, object, datas, context)
  File "/opt/odoo/odoo_pan/src/openerp/report/__init__.py", line 40, in render_report
    return registry['ir.actions.report.xml'].render_report(cr, uid, ids, name, data, context)
  File "/opt/odoo/odoo_pan/src/openerp/api.py", line 268, in wrapper
    return old_api(self, *args, **kwargs)
  File "/opt/odoo/odoo_pan/src/addons/base/ir/ir_actions.py", line 156, in render_report
    return new_report.create(cr, uid, res_ids, data, context)
  File "/opt/odoo/odoo_pan/src/addons/report_webkit/webkit_report.py", line 377, in create
    result = self.create_source_pdf(cursor, uid, ids, data, report_xml, context)
  File "/opt/odoo/odoo_pan/src/openerp/report/report_sxw.py", line 462, in create_source_pdf
    return self.create_single_pdf(cr, uid, ids, data, report_xml, context)
  File "/opt/odoo/odoo_pan/src/addons/report_webkit/webkit_report.py", line 358, in create_single_pdf
    pdf = self.generate_pdf(bin, report_xml, head, foot, htmls)
  File "/opt/odoo/odoo_pan/src/addons/report_webkit/webkit_report.py", line 220, in generate_pdf
    _("The command 'wkhtmltopdf' failed with error code = %s. Message: %s") % (status, error_message))
except_orm: ('Webkit error', "The command 'wkhtmltopdf' failed with error code = 1. Message: The following diagnosis message was provided:\nExit with code 1 due to network error: ContentNotFoundError\n")
ChesuCR

最后,我创建了一个新的计算字段以获取base64代码

class StockMove(models.Model):
    _inherit = "stock.move"

    barcode_image = fields.Text(
        string='Barcode image',
        compute='_compute_barcode_image',
    )

    @api.one
    @api.depends('product_id')
    def _compute_barcode_image(self):
        if self.product_id.product_tmpl_id.ean13:
            try:
                barcode = self.env['report'].barcode(
                    'EAN13',
                    self.product_id.product_tmpl_id.ean13,
                    width=300,
                    height=50,
                    humanreadable=0
                )
            except (ValueError, AttributeError):
                raise Warning(_('Cannot convert into barcode.'))
            barcode_base64 = base64.b64encode(barcode)
            self.barcode_image = 'data:image/png;base64,' + barcode_base64
        else:
            self.barcode_image = None

并将其添加到mako报告中:

%if line.product_id and line.product_id.ean13:
    <span>
        <img src="${line.barcode_image}" 
             style="width:300px; height:50px" />
    </span>
%endif 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Odoo / OpenERP中的mako报告中打印条形码?

来自分类Dev

如何在C#中打印条形码格式

来自分类Dev

如何在c#中的条形码下打印文本

来自分类Dev

如何在图像中查找多个条形码

来自分类Dev

如何在iPhone相机中扫描条形码?

来自分类Dev

如何在HTML中更改条形码的宽度

来自分类Dev

如何使条形码扫描仪从数据库中检查条形码编号?

来自分类Dev

如何从C#Winforms中的条形码扫描仪读取条形码值

来自分类Dev

如何在实际条形码Python`code128`模块中包含条形码值

来自分类Dev

如何通过GUI在Ubuntu中创建条形码?

来自分类Dev

如何从ASPX中的条形码扫描检测ENTER KEY

来自分类Dev

如何在Mysql中的ASC中对条形码字符串进行排序

来自分类Dev

如何在odoo 14中隐藏打印菜单中的报告?

来自分类Dev

如何在Swift中从字符串生成条形码?

来自分类Dev

如何在tcpdf中手动放置条形码

来自分类Dev

Java:如何在Excel工作表中显示条形码?

来自分类Dev

如何在条形码中递归查找数字或“ xx”对(Python)

来自分类Dev

如何在html上显示条形码扫描结果而不是angularjs + Ionic中的警报

来自分类Dev

如何在条形码中对用户身份验证进行编码

来自分类Dev

如何使用Android中的Zxing库从摄像头预览中解码条形码?

来自分类Dev

如何从ios中的字符串中快速获取高质量的条形码图像

来自分类Dev

如何在Raspberry Pi 4中将USB条形码扫描仪输入到python中

来自分类Dev

如何将我们的ZPL码中的条形码更改为QR码?

来自分类Dev

如何将生成的条形码作为img保存到文件夹中?

来自分类Dev

如何使用iOS 7中的AVFoundation框架扫描以下二维条形码?

来自分类Dev

从条形码阅读器中如何使用textChanged事件

来自分类Dev

如何使用条形码结果在Flutter中打开WebView

来自分类Dev

如何使用AngularJS在页面中附加多个扫描的条形码结果数据

来自分类Dev

如何从Phonegap中的CT10蓝牙条形码扫描仪读取数据?

Related 相关文章

  1. 1

    如何在Odoo / OpenERP中的mako报告中打印条形码?

  2. 2

    如何在C#中打印条形码格式

  3. 3

    如何在c#中的条形码下打印文本

  4. 4

    如何在图像中查找多个条形码

  5. 5

    如何在iPhone相机中扫描条形码?

  6. 6

    如何在HTML中更改条形码的宽度

  7. 7

    如何使条形码扫描仪从数据库中检查条形码编号?

  8. 8

    如何从C#Winforms中的条形码扫描仪读取条形码值

  9. 9

    如何在实际条形码Python`code128`模块中包含条形码值

  10. 10

    如何通过GUI在Ubuntu中创建条形码?

  11. 11

    如何从ASPX中的条形码扫描检测ENTER KEY

  12. 12

    如何在Mysql中的ASC中对条形码字符串进行排序

  13. 13

    如何在odoo 14中隐藏打印菜单中的报告?

  14. 14

    如何在Swift中从字符串生成条形码?

  15. 15

    如何在tcpdf中手动放置条形码

  16. 16

    Java:如何在Excel工作表中显示条形码?

  17. 17

    如何在条形码中递归查找数字或“ xx”对(Python)

  18. 18

    如何在html上显示条形码扫描结果而不是angularjs + Ionic中的警报

  19. 19

    如何在条形码中对用户身份验证进行编码

  20. 20

    如何使用Android中的Zxing库从摄像头预览中解码条形码?

  21. 21

    如何从ios中的字符串中快速获取高质量的条形码图像

  22. 22

    如何在Raspberry Pi 4中将USB条形码扫描仪输入到python中

  23. 23

    如何将我们的ZPL码中的条形码更改为QR码?

  24. 24

    如何将生成的条形码作为img保存到文件夹中?

  25. 25

    如何使用iOS 7中的AVFoundation框架扫描以下二维条形码?

  26. 26

    从条形码阅读器中如何使用textChanged事件

  27. 27

    如何使用条形码结果在Flutter中打开WebView

  28. 28

    如何使用AngularJS在页面中附加多个扫描的条形码结果数据

  29. 29

    如何从Phonegap中的CT10蓝牙条形码扫描仪读取数据?

热门标签

归档