2017-07-19 43 views
3

我一直被困在两天内解决问题。我想获取PDF文件的二进制数据或内容,并将其保存在一个变量中,无论是否将pdf文件传给用户。这里是我的代码:如何获得pdf数据或odoo 8中的内容

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 -------- 

和这些解析器类

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

您可以通过以下方法得到它。

report_name = 'external_id_of_your_report' 
datas=self.env['report'].get_pdf(self, report_name) 

可以使用get_pdf方法,它是在 报告模块可让报表数据。

其中您需要传递报告名称。

这可能对你有帮助。

+0

谢谢Empiro Technologies Pvt。公司 –