【发布时间】:2015-10-01 05:11:03
【问题描述】:
我使用 python-docx 来生成 word 文档。用户希望他创建一个模板(在字段描述中),并且当他在模板中编写例如 %(company_logo)s 时,我将这个表达式替换为我从数据库中恢复的公司图片。 作为第一个问题,我从数据库(Postgresql)中恢复了一家公司的徽标,并使用此代码替换此表达式:
cr.execute("select name, logo_web from res_company where id=%s",[soc_id])
r=cr.fetchone()
if r :
company_name=r[0]
logo_company = r[1]
output = cStringIO.StringIO()
doc = docx.Document()
contenu=contenu % {'company_logo': logo_company, 'company_name': company_name,}
doc.add_paragraph(contenu)
输出是一个文档单词,其中包含图像的 base 64 代码作为字符串。我对此代码进行了解码,并尝试使用以下代码将其添加为图片:
logo_company = base64.b64decode(r[1])
doc.add_picture(logo_company)
但是我有这个错误告诉我参数必须是图片的路径。
TypeError: file() argument 1 must be encoded string without NULL bytes, not str
【问题讨论】:
标签: postgresql python-2.7 base64 openerp-7 python-docx