#004 Python实现批量 Word to PDF

一、背景
在学校学习阶段通常很少使用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)

if __name__ == '__main__':
# 调用批量转换函数进行转换
    batch_doc_to_pdf('D:\Lab\Python100\doc_to_pdf', 'D:\Lab\Python100\doc_to_pdf')

你可能感兴趣的:(Python应用100例,python,word,pdf)