How to get pdf data or content in odoo 8
I got stuck two days later to fix this issue. I would like to get the binary data or content of a PDF file and store it in a variable with or without the PDF file metadata. Here are my codes:
def generate_printout(self):
data = self.read([self.id])[0]
datas = {
'ids': [],
'model': 'monthly.bill.wizard', # wizard model name
'form': data,
'context':self.env.context
}
# -------- HOW TO GET THE CONTENT OF PDF FILE --------
return {
'type': 'ir.actions.report.xml',
'report_name': 'ig_bill.monthly_bill_printout_report_template',#module name.report template name
'datas': datas,
}
# -------- HOW TO GET THE CONTENT OF PDF FILE --------
and this is the parser class
class monthly_bill_report(osv.AbstractModel):
_name = 'report.ig_bill.monthly_bill_printout_report_template'
_inherit = 'report.abstract_report'
_template = 'ig_bill.monthly_bill_printout_report_template'
_wrapped_report_class = monthly_bill_printout_report_parser
class monthly_bill_printout_report_parser(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(monthly_bill_printout_report_parser, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
'parameter_contact' : self._get_contact,
etc...
})
+3
source to share
1 answer
You can get it using the following method.
report_name = 'external_id_of_your_report'
datas=self.env['report'].get_pdf(self, report_name)
You can get the report data using the get_pdf method that is available in the report.
In which you need to pass the name of the report.
This might help you.
+3
source to share