首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python-docx将数据库中存储的二进制图像插入到word文档中?

如何使用python-docx将数据库中存储的二进制图像插入到word文档中?
EN

Stack Overflow用户
提问于 2019-08-23 13:07:53
回答 1查看 476关注 0票数 3

我正在尝试使用python-docx将图像添加到word文档中。我正在使用python3。并且该二进制被存储在BLOB列中。我可以在Sequel Pro中查看图像,所以它看起来不是db错误。

我已经使用UPDATE games SET data = LOAD_FILE('~/pictures/image.gif') WHERE id = 1将gif和png添加到数据库中

我正在迭代一堆行。我也尝试过使用bin()函数。然后我得到了一些关于尝试IO包的建议。

代码语言:javascript
复制
import io
document.add_picture(io.BytesIO(item["data"]))

item["data"]是镜像二进制文件。

不幸的是,这抛出了一个错误:

代码语言:javascript
复制
  File "/usr/local/lib/python3.7/site-packages/docx/image/image.py", line 199, in _ImageHeaderFactory
    raise UnrecognizedImageError
docx.image.exceptions.UnrecognizedImageError

预期的结果是我可以使用python-docx将图像添加到Word中。我在图像文件上遇到了这个问题,并在使用ImageMagic转换图像时让事情变得正常。$ convert image.png image.png。所以一种选择可能是保存一个临时文件并转换它?但这似乎是不必要的麻烦。

EN

回答 1

Stack Overflow用户

发布于 2019-08-24 01:47:15

所有这些错误都意味着python-docx无法识别图像二进制文件上的头文件。ImageMagick对于它将识别的内容更加复杂,并且能够识别出类型。请注意,它确实在写入时以不同的方式保存了该标头,以使python-docx能够很好地提取更传统的形式。

大多数图像导入都没有问题,但是图像头部有很大的可变性,即使是像PNG这样的东西。

在任何情况下,您的图像都与传统的标题布局相差很远,以至于无法识别,在将它们添加到文档之前,您需要对它们进行预处理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57620169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档