#004 Python实现批量 Word to PDF

posted in: 办公技巧 | 0

一、背景

在学校学习阶段通常很少使用PDF,工作以后就比较多。

PDF其实也有自己很多优先:

1)不可编辑

2)格式不会因为环境发生变化

3)体积小

一般演讲的PPT或者说明书、操作说明等都会转PDF以后再传播出去。

如果只是一个文档的话,WORD已经提供了另外为PDF的办法,如果有多个文档化,Python就有用武之地了。

二、实现办法

1.我们需要使用Python中的python-docx库和pywin32库

pip install python-docx pywin32

2.详细代码

# -*- coding: utf-8 -*-
"""
    @Author  : Nick
    @Time    : 2023/9/4
    @Comment : #004 doc to pdf
"""
import os
import win32com.client
# Word文件转换为PDF
def doc_to_pdf(word_path, pdf_path):
    try:
        # 创建Word应用程序对象
        word_app = win32com.client.Dispatch('Word.Application')
        # 打开Word文档
        doc = word_app.Documents.Open(word_path)
        # 保存为PDF
        doc.SaveAs(pdf_path, FileFormat=17)
        # 关闭文档和应用程序
        doc.Close()
        word_app.Quit()
        print(f'成功转换:{word_path} -> {pdf_path}')
        return True
    except Exception as e:
        print(f'转换失败:{word_path},错误信息:{str(e)}')
        return False
# 批量转换Word文件夹下的所有文档
def batch_doc_to_pdf(word_folder, pdf_folder):
    # 检查PDF保存目录是否存在,若不存在则创建
    if not os.path.exists(pdf_folder):
        os.makedirs(pdf_folder)
    # 遍历Word文件夹下的所有文件
    for filename in os.listdir(word_folder):
        if filename.endswith('.doc') or filename.endswith('.docx'):
            word_path = os.path.join(word_folder, filename)
            pdf_path = os.path.join(pdf_folder, f'{os.path.splitext(filename)[0]}.pdf')
            doc_to_pdf(word_path, pdf_path)
# 调用批量转换函数进行转换
batch_doc_to_pdf('D:LabPython100doc_to_pdf', 'D:LabPython100doc_to_pdf')

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注