问题描述
目前我可以使用 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
也可以是 str
或 bytes
。