大佬教程收集整理的这篇文章主要介绍了加密 Odoo 附件并通过电子邮件发送,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个问题,在发送工资单时,系统应该检索生成的工资单,对其进行加密,然后通过电子邮件将其作为加密附件发送。
问题是,当我保存 pdf 时,它会输出一个空白文件或一个不可读的文件,并抛出错误 file type unkNown (application/octet-stream) is not supported
。
我已经确认变量 `pdf[0] 实际上是字节格式的 pdf。
所以我的问题是如何将这些 pdf 数据保存到人类可读的 pdf 文件中。
这是我的python代码。 此方法将调用附有 pdf 的 odoo 发送电子邮件弹出窗口。
save_pdf_file()
函数只是获取路径并将加密的附件保存回 odoo,以便它可以作为 pdf 附加。
如果您需要额外说明,请告诉我。谢谢你们的时间。
def send_by_email(self):
for rec in self:
filename = f"{(rec.name or '').@R_197_9363@ce('/','_')}_${rec.statE}"
pdf = self.env.ref(
'hr_payroll_community.action_report_payslip').render_qweb_pdf(rec.ID)
_logger.info(base64.b64decode(pdf[0]))
if pdf:
#here i am tesTing to see if I can save the pdf but it's not working.
pdf1 = pdf[0]
pdf_path = rec.create_pdf()
with open('/home/b14/Desktop/dd.pdf','wb') as f:
f.write(base64.decodebytes(pdf1))
# add_encryption(pdf_path,pdf_path,'12345678')
pdf_ID = rec.save_pdf_file(pdf_path,fileName)
template_ID = self.env.ref(
'send_payslips_by_email.email_template_send_payslip').ID
compose_form_ID = self.env.ref(
'mail.email_compose_message_wizard_form').ID
ctx = Dict(
default_model='hr.payslip',default_res_ID=self.ID,# IDK IF THIS FIELD BELOW ACTUALLY EXISTS
default_use_template=bool(template_ID),default_template_ID=template_ID,# default_attachment_IDs=[(0,pdf_ID)],default_composition_mode='comment',)
return {
'name': _('Compose Email'),'type': 'ir.actions.act_window','vIEw_type': 'form','vIEw_mode': 'form','res_model': 'mail.compose.message','vIEws': [(compose_form_ID,'form')],'vIEw_ID': compose_form_ID,'target': 'new','context': ctx,}
在此之后,有加密pdf的功能,我已经确认它可以很好地与我机器上已经保存的其他pdf一起使用。
def add_encryption(input,output,password):
pdf_writer = pdffileWriter()
pdf_reader = pdffileReader(input)
for page in range(pdf_reader.getNumPages()):
pdf_writer.addPage(pdf_reader.getPage(pagE))
pdf_writer.encrypt(user_pwd=password,owner_pwd=None,use_128bit=TruE)
with open('/home/b14/Desktop/pp.pdf','wb') as f:
pdf_writer.write(f)
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的加密 Odoo 附件并通过电子邮件发送全部内容,希望文章能够帮你解决加密 Odoo 附件并通过电子邮件发送所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。