azw3转换为pdf_Python自动化办公:Word批量转换为Pdf

本文介绍了一种使用Python批量将Word文档转换为PDF的方法。通过Python调用Word底层VBA,实现了自动化转换流程,适用于大量文档处理场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

v2-33b76dbdbe20ff70430ef98729a0f436_1440w.jpg?source=172ae18b

在工作中,我们经常需要把Word转换为PDF。数量少还可以一个一个去保存;但在工作中经常是一次性需要几十个转换,一个一个去转换就太麻烦了;目前Python自动化办公还是很热门的,网上课程也是非常多,于是就想着用Python来实现。

1、环境准备

  1. python3
  2. pywin32
  3. office2007及以上

原理:使用Python win32 库 调用Word底层vba,将Word转成PDF。

2、Python代码

from win32com.client import gencache
from win32com.client import constants, gencache
import os

#创建PDF
def createPdf(wordPath, pdfPath):
    """
    word转pdf
    :param wordPath: word文件路径
    :param pdfPath:  生成pdf文件路径
    """
    word = gencache.EnsureDispatch('Word.Application')
    doc = word.Documents.Open(wordPath, ReadOnly=1)
    doc.ExportAsFixedFormat(pdfPath,
                            constants.wdExportFormatPDF,
                            Item=constants.wdExportDocumentWithMarkup,
                            CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
    word.Quit(constants.wdDoNotSaveChanges)

#遍历当前目录,并把Word文件转换为PDF
def wordToPdf():
    print("转换中...")
    # 获取当前运行路径
    path = os.getcwd()
    # 获取所有文件名的列表
    filename_list = os.listdir(path)
    # 获取所有word文件名列表
    wordname_list = [filename for filename in filename_list 
                        if filename.endswith((".doc", ".docx"))]
    for wordname in wordname_list:
        # 分离word文件名称和后缀,转化为pdf名称
        pdfname = os.path.splitext(wordname)[0] + '.pdf'
        # 如果当前word文件对应的pdf文件存在,则不转化
        if pdfname in filename_list:
            continue
        # 拼接 路径和文件名
        wordpath = os.path.join(path, wordname)
        pdfpath = os.path.join(path, pdfname)
        createPdf(wordpath,pdfpath)

#word转pdf
if __name__ == '__main__':
    wordToPdf()

3、使用方法

把Py文件放入Word文档的目录中,点击运行Py文件就会自动转换。当然了也可以用PyInstaller打包为exe文件,这样就不用安装Python环境,并且可以多平台使用。

v2-496ae5bd1b34db567ac910dc3b18394c_b.jpg

好了,今天就分享到这边,大家有什么想法,欢迎给我留言讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值