首页 > 解决方案 > 如何以 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>

标签: pdfodooodoo-14

解决方案


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

这是一个示例,请根据自己的使用进行调整。

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

your_buffer可以是 astrbytes


推荐阅读