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

1

   
环境准备
    python3
    pywin32
    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环境,并且可以多平台使用。

好了,今天就分享到这边,大家有什么想法,欢迎给我留言讨论。觉得有用的,点击下{在看}。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码