Odoo14通过API传QWeb报表Base64编码至移动端报错求助
解决Odoo14生成的Base64报表在移动端解析失败的问题
问题根源
你用base64.base64encode(pdf)得到的是Python的bytes类型对象,直接输出或传递时会带上b'前缀和末尾的',这两个字符不属于Base64编码的合法字符(Base64仅允许A-Z、a-z、0-9、+、/、=),导致移动端解析时判定为无效格式。
修复方案
在编码后调用.decode('utf-8')将bytes对象转换为纯Base64字符串,去掉多余的标识字符:
import base64 # 生成PDF后执行编码 pdf_base64 = base64.base64encode(pdf).decode('utf-8')
这样得到的字符串就不会包含b'前缀,是标准的Base64格式,移动端可以正常解析。
验证要点
- 检查最终字符串:确保开头没有
b',结尾没有' - 确认字符串长度是4的倍数:Base64编码要求长度必须是4的整数倍,不足时会用
=填充(最多2个),如果长度不符合,可能是PDF生成过程中出现截断,需要检查报表生成逻辑。
内容的提问来源于stack exchange,提问作者user19986231
相关产品推荐
相关产品推荐

