Skip to Content
Menu
This question has been flagged
1 Reply
5450 Views

Hey i have a report which opens up on odoo website but i also want to take print of it. Right now report is at  url "\http://localhost:8069/purchase_comparison_chart/purchase_comparison/te00002-2" now i have added a button in it but i dont know what url to assign to it and exact python function for downloading pdf. Kindly give me some guidance. I shall be thankful

Avatar
Discard
Best Answer

Hi,

1- The value of your href must be a link to a controller like the below code:

<a role="button" class="btn btn-primary d-none d-md-inline-block" href="/shop/print" target="_blank" aria-label="Print" title="Print"><i class="fa fa-print"></i> Print</a>

2- After, create a controller like the following code :

@http.route(['/shop/print'], type='http', auth="public", website=True)
def print_saleorder(self, **kwargs):
sale_order_id = request.session.get('sale_last_order_id')
if sale_order_id:
pdf, _ = request.env.ref('sale.action_report_saleorder').sudo().render_qweb_pdf([sale_order_id])
pdfhttpheaders = [('Content-Type', 'application/pdf'), ('Content-Length', u'%s' % len(pdf))]
return request.make_response(pdf, headers=pdfhttpheaders)
else:
return request.redirect('/shop')

Best regards!

Avatar
Discard
Author

Thank you! very helpful

Related Posts Replies Views Activity
2
Sep 21
5714
7
Jan 20
8627
0
Nov 19
2131
0
Nov 19
3714
0
Jan 21
2175