#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')
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值