跳至內容
選單
此問題已被標幟
1 回覆
6249 瀏覽次數

Hi, 

I have a custom wizard with fields : "file_name"(Char), "model_id"(active model), "content_report"(html) . 

I added a print button in this wizard . When I click on this button I want to generate reporte with name = "file_name" and content of report = "content_report" , without using a report template. Only with python code?


I'm trying with this code:

def print_report(self):
self.ensure_one() action_report = self.env['ir.actions.report'] bodies, html_ids, header, footer, specific_paperformat_args = action_report._prepare_html(self.content_report) pdf_content = action_report._run_wkhtmltopdf( bodies, report_ref=None, header=header, footer=footer, landscape=False, specific_paperformat_args=specific_paperformat_args, set_viewport_size=False, ) self.update({'file_content': base64.b64encode(pdf_content)})


But I got this error : 

 File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_actions_report.py", line 337, in _prepare_html body_parent = root.xpath('//main')[0] IndexError: list index out of range


How can I do it? Any help please?


Thanks.

頭像
捨棄
最佳答案

Hi,

Refer to this blog to generate a PDF report  via a print button in the wizard in Odoo 16
https://www.cybrosys.com/blog/how-to-create-pdf-report-in-odoo-16


Hope it helps

頭像
捨棄
作者

Thanks for response , but my question is about without using template XML . Only using python functions to generate the report.

相關帖文 回覆 瀏覽次數 活動
0
9月 23
29
1
5月 20
3287
0
9月 22
2404
1
5月 17
4889
0
9月 24
1031