Loading

Python-批量处理Word转PDF

使用Python批量处理Word转PDF

1. 安装依赖

pip安装pywin32库

pip install pywin32

2. 代码实现

from win32com.client import constants, gencache
import os  # 目录的操作
import time


def createpdf(wordPath, pdfPath):
    word = gencache.EnsureDispatch('Word.Application')
    doc = word.Documents.Open(wordPath, ReadOnly=1)
    # 转换方法
    doc.ExportAsFixedFormat(pdfPath, constants.wdExportFormatPDF)
    word.Quit()

start_time = time.time()  # 起始时间
count = 0
# 多个文件的转换
print(os.listdir('.'))  # 当前文件夹下的所有文件
wordfiles = []
for file in os.listdir('.'):
    if file.endswith(('.doc', '.docx')):  # 通过后缀找出所有的workd文件
        wordfiles.append(file)
print(wordfiles)

for file in wordfiles:
    # 获取文件路径
    old_time = time.time()
    filepath = os.path.abspath(file)
    index = filepath.rindex('.')
    # 通过截取获取pdfpath
    pdfpath = filepath[:index]+'.pdf'
    # print(pdfpath)
    createpdf(filepath, pdfpath)
    now_time = time.time()
    count += 1
    print(count, pdfpath, f"处理时长:{str(now_time-old_time)}s")

end_time = time.time()  # 结束时间
print(f"共处理文件{len(wordfiles)}件, 共花费时间{str(end_time-start_time)}s")

在word文件目录内运行python文件实现批量word转pdf。

3. 程序打包

安装打包库

pip install pyinstaller
# 打包命令
Pyinstaller -F setup.py 打包exe
Pyinstaller -F -w setup.py 不带控制台的打包
Pyinstaller -F -i xx.ico setup.py 打包指定exe图标打包

运行后在dist目录中找到exe程序
image

4. 随笔总结

Python处理一份文件的时间大约在3~10s不等,效率方面较为一般,但总比手工好太多了。拓展性方面也还有更大空间,且目前来说仅在Windows上可以使用,在Linux上需要下载LibreOffice,稍微复杂一些。

5. 参考链接

Python实现word转pdf
Python中记录程序运行时间
Python程序打包成exe
Python程序打包成.exe(史上最全面讲解)

posted @ 2023-05-12 16:00  硅酸盐  阅读(617)  评论(0编辑  收藏  举报