如何使用pywin32从.docx文档生成图像缩略图

0 投票
1 回答
2389 浏览
提问于 2025-04-17 22:48

我正在使用Mark Hammond的pywin32扩展来操作Microsoft Word 2013。我的目标很简单:我想从任何给定的.docx文件中提取-第一页-,然后把它保存为jpeg文件(或者其他任何图片格式),基本上就是生成一个缩略图。

我该怎么做呢?

这是我目前的进展:

from time import sleep
import win32com.client as win32

def word():
    word = win32.gencache.EnsureDispatch('Word.Application')
    doc = word.Documents.Open("myFile.docx")
    word.Visible = False
    sleep(1)
    ...
    ## CODE I NEED ##
    ...
    doc.Close(False)
    word.Application.Quit()

if __name__ == '__main__':
    word()

提前谢谢你们。

1 个回答

2

MS Office的文档是以OOXML格式保存的,这种格式其实就是一个压缩包,里面包含了“不同的文件”。

要提取缩略图,只需在这个ZIP(也就是docx)压缩包里找一个名为“thumbnail”的文件,后面可能会有不同的扩展名。(目前这个文件可能是thumbnail.emf(用于docx),wmf(用于xlsx)或者jpeg(用于pptx))。另外,要注意的是,如果用户在保存Word/Excel/PowerPoint文件时选择不包含缩略图,那么这个缩略图文件可能就会缺失。

撰写回答