前提:有时候需要快速查看word文档的内容是否自己需要的,或者就是单纯需要将word文档转换成一张张图片。
思路:word文档直接生成图片比较蛮烦,可能会引起格式变化,就先将word文档转换成PDF,然后将PDF文档转换成图片。
语言:python 3
用法:点击运行后,弹出窗口选择文件夹,程序运行后会将该文件夹下所有word文档依次转换成PDF文档——PDF文档生成图片——删除PDF文档——继续处理下一个word文档。
如运行中报错,需要自行根据报错内容按照缺失的库
例如:
#安装库
pip install pyautogui
#安装库
pip install pillow
完整代码如下:
#遍历目录及子文件夹中的word文件
import os
import glob
from tkinter import Tk
from tkinter.filedialog import askdirectory
from win32com.client import DispatchEx
from pdf2image import convert_from_path
# 打开选择目录的对话框
Tk().withdraw() # 隐藏Tkinter根窗口
word_dir = askdirectory(title="选择Word文件所在目录")
# 遍历目录及子文件夹中的Word文件
word_files = []
for root, dirs, files in os.walk(word_dir):
for file in files:
if file.endswith(".docx") or file.endswith(".doc") or file.endswith(".dotx"):
word_files.append(os.path.join(root, file))
# 创建Word应用程序对象
word_app = DispatchEx("Word.Application")
# 遍历Word文件进行转换
for word_file in word_files:
print(f'转换中:{word_file}')
# 转换为PDF并保存到Word所在目录
pdf_file = os.path.splitext(word_file)[0] + ".pdf"
doc = word_app.Documents.Open(word_file)
doc.SaveAs(pdf_file, FileFormat=17)
doc.Close()
# 将PDF转换为图片
images = convert_from_path(pdf_file)
# 保存图片
for i, image in enumerate(images):
image_file = os.path.splitext(pdf_file)[0] + f"_page_{i+1}.jpg" # 设置图片文件名
image.save(image_file, "JPEG")
print(f"保存图片:{image_file}")
# 删除PDF文件
os.remove(pdf_file)
print(f"删除PDF文件:{pdf_file}")
# 关闭Word应用程序
word_app.Quit()