我们的工作场景中每次上传word时都要把word文件先导出图片,然后一一上传系统,因为只有PNG 图片能直接预览,且确保文本、图片和格式保持不变。但有时候遇到大的word文档,一个文档导出来可能都有几十张图片,这样效率实在太低。针对这种情况,我们选了Spire.Doc for Python批量将word转图片,大大提升了转换效率及准确率。该项目分享如何使用 Spire.Doc 在 Python 中将 Word 转换为 PNG。
- Python Word 指定页面转换为 PNG图片
- Python Word 所有页面批量转换为 PNG图片
安装 Spire.Doc for Python
项目中需要用到 Spire.Doc for Python。可以通过 pip 命令将它轻松安装到 VS Code 中,简单快捷,使用方便,无需安装其他程序。
pip install Spire.Doc
Python 将 Word 指定页面转换为PNG图片
Spire.Doc for Python 提供 Document.SaveImageToStream() 方法可将特定页面转换为位图(Bitmap)。然后,您可以将位图(Bitmap)再进一步保存为 PNG、JPEG 或 BMP 等常用图像格式。具体步骤如下。
- 创建 Document 类的对象。
- 使用 Document.LoadFromFile() 方法加载 Word 文件。
- 读取文档第一页,并使用 Document.SaveImageToStreams() 方法将特定页面转换为位图(Bitmap)。
- 将位图(Bitmap)保存为 PNG 图片格式。
Python 代码转换Word到图片
from spire.doc import *
from spire.doc.common import *
# 创建Document对象
document = Document()
# 加载Word文档
document.LoadFromFile("Sample.docx")
# 将第一页转换为位图(bitmap)
imageStream = document.SaveImageToStreams(0, ImageType.Bitmap)
# 将位图(bitmap)保存为PNG文件
with open("ToImage.png",'wb') as imageFile:
imageFile.write(imageStream.ToArray())
document.Close()
Python Word 批量将全部页面转换为 PNG图片
和上面步骤相同,遍历word文档中的所有页面后,批量将所有的word文档页面一次性转为PNG图片
from spire.doc import *
from spire.doc.common import *
# 创建Document对象
document = Document()
# 加载Word文档
document.LoadFromFile("Sample2.docx")
# 遍历文档中的所有页面
for i in range(document.GetPageCount()):
# 将指定页面转换为位图(bitmap)
imageStream = document.SaveImageToStreams(i, ImageType.Bitmap)
# 将位图(bitmap)保存为PNG文件
with open('toImage-{0}.png'.format(i),'wb') as imageFile:
imageFile.write(imageStream.ToArray())
document.Close()
最后
Spire.Doc 还支持在python中生成、读取 Word 文档,添加页眉和页脚,创建表格,添加表单域和邮件合并域,添加书签,添加文本和图片水印,设置背景颜色和背景图片,添加脚注和尾注,添加超链接,加密和解密 Word 文档等。希望本文对你有一些帮助,如有问题,欢迎指正^^