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

如何以 zip 格式生成多个 odoo qweb 报告PDF 文件?

如何解决如何以 zip 格式生成多个 odoo qweb 报告PDF 文件?

目前我可以使用 odoo 进行单记录报告,但是当我使用多个文件时,所有报告都不是多个 PDF 而是一个 PDF 文件。那么,有没有办法让 odoo 生成的报告作为对象,这样我就可以收集它们并以 zip 格式压缩它们?我还没有尝试任何东西,因为我也从未在其他地方看到任何答案。

这是我的报告代码

<record id="action_report_1721A1" model="ir.actions.report">
            <field name="name">Generate PDF</field>
            <field name="model">wgs.form.1721.a1.list</field>
            <field name="report_type">qweb-pdf</field>
            <field name="report_name">wgs_perhitungan_form_1721_a1.report_1721A1</field>
            <field name="report_file">wgs_perhitungan_form_1721_a1.report_1721A1</field>
            <field name="print_report_name">'BUKTI POTONG PAJAK - {}  - TAHUN  {}'.format(object.employee_id.name,object.tahun)</field>
            <field name="paperformat_id" ref="wgs_perhitungan_form_1721_a1.paperformat_1721A1"/>
        </record>

解决方法

使用 zipfile 并将每个 pdf 文件添加到其中:

这是一个例子,根据自己的使用情况进行调整。

    temp = tempfile.mktemp(suffix='.zip')
    with zipfile.ZipFile(temp,'w') as zfile:
         zfile.writestr(filename,your_buffer)

your_buffer 也可以是 strbytes

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