Python怎么将Office文件转PDF
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇内容介绍了"Python怎么将Office文件转PDF"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所
千家信息网最后更新 2025年11月08日Python怎么将Office文件转PDF
本篇内容介绍了"Python怎么将Office文件转PDF"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
安装 win32com
在实战之前,需要安装 Python 的 win32com,详细安装步骤如下:
使用 pip 命令安装
pip install pywin32
如果我们遇到安装错误,可以通过python -m pip install --upgrade pip更新云端的方式再进行安装即可:
python -m pip install --upgrade pip
下载离线安装包安装
如果 pip 命令未安装成功的话还可以下载离线包安装,方法步骤如下:首先在官网选择对应的 Python 版本下载离线包: sourceforge.net/projects/pywin32/files/pywin32/Build%20221/ 下载好后傻瓜式安装好即可。
文件转换逻辑
详细代码如下:
class PDFConverter: def __init__(self, pathname, export='.'): self._handle_postfix = ['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx'] # 支持转换的文件类型 self._filename_list = list() #列出文件 self._export_folder = os.path.join(os.path.abspath('.'), 'file_server/pdfconver') if not os.path.exists(self._export_folder): os.mkdir(self._export_folder) self._enumerate_filename(pathname) def _enumerate_filename(self, pathname): ''' 读取所有文件名 ''' full_pathname = os.path.abspath(pathname) if os.path.isfile(full_pathname): if self._is_legal_postfix(full_pathname): self._filename_list.append(full_pathname) else: raise TypeError('文件 {} 后缀名不合法!仅支持如下文件类型:{}。'.format(pathname, '、'.join(self._handle_postfix))) elif os.path.isdir(full_pathname): for relpath, _, files in os.walk(full_pathname): for name in files: filename = os.path.join(full_pathname, relpath, name) if self._is_legal_postfix(filename): self._filename_list.append(os.path.join(filename)) else: raise TypeError('文件/文件夹 {} 不存在或不合法!'.format(pathname)) def _is_legal_postfix(self, filename): return filename.split('.')[-1].lower() in self._handle_postfix and not os.path.basename(filename).startswith( '~') def run_conver(self): print('需要转换的文件数是:', len(self._filename_list)) for filename in self._filename_list: postfix = filename.split('.')[-1].lower() funcCall = getattr(self, postfix) print('原文件:', filename) funcCall(filename) print('转换完成!')doc/docx 转换为 PDF
doc/docx 转换为 PDF 部分代码如下所示:
def doc(self, filename): name = os.path.basename(filename).split('.')[0] + '.pdf' exportfile = os.path.join(self._export_folder, name) print('保存 PDF 文件:', exportfile) gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4) pythoncom.CoInitialize() w = Dispatch("Word.Application") pythoncom.CoInitialize() # 加上防止 CoInitialize 未加载 doc = w.Documents.Open(filename) doc.ExportAsFixedFormat(exportfile, constants.wdExportFormatPDF, Item=constants.wdExportDocumentWithMarkup, CreateBookmarks=constants.wdExportCreateHeadingBookmarks) w.Quit(constants.wdDoNotSaveChanges) def docx(self, filename): self.doc(filename)ppt/pptx 转换为 PDF
ppt/pptx 转换为 PDF 部分代码如下:
def ppt(self, filename): name = os.path.basename(filename).split('.')[0] + '.pdf' exportfile = os.path.join(self._export_folder, name) gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4) pythoncom.CoInitialize() p = Dispatch("PowerPoint.Application") pythoncom.CoInitialize() ppt = p.Presentations.Open(filename, False, False, False) ppt.ExportAsFixedFormat(exportfile, 2, PrintRange=None) print('保存 PDF 文件:', exportfile) p.Quit() def pptx(self, filename): self.ppt(filename)xls/xlsx 转换为 PDF
def xls(self, filename): name = os.path.basename(filename).split('.')[0] + '.pdf' exportfile = os.path.join(self._export_folder, name) pythoncom.CoInitialize() xlApp = DispatchEx("Excel.Application") pythoncom.CoInitialize() xlApp.Visible = False xlApp.DisplayAlerts = 0 books = xlApp.Workbooks.Open(filename, False) books.ExportAsFixedFormat(0, exportfile) books.Close(False) print('保存 PDF 文件:', exportfile) xlApp.Quit() def xlsx(self, filename): self.xls(filename)执行转换逻辑
if __name__ == "__main__": # 支持文件夹批量导入 #folder = 'tmp' #pathname = os.path.join(os.path.abspath('.'), folder) # 也支持单个文件的转换 pathname = "G:/python_study/test.doc" pdfConverter = PDFConverter(pathname) pdfConverter.run_conver()"Python怎么将Office文件转PDF"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
文件
支持
代码
内容
命令
文件夹
更多
步骤
知识
类型
逻辑
部分
实用
成功
学有所成
接下来
云端
件数
傻瓜
单个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库国企公司都有哪些
网页php连接数据库
互联网新型网络技术
互联网金融与金融科技区别
上海普陀区数据库防篡改
怎样在数据库查询的时候乘以9
龙岩戴尔服务器代理销售
第五人格如何维修服务器
轻量级的数据库
奉贤区软件开发系统
php数据库查询所有表
为啥网络安全模式打不开
维护网络安全法的立法目的
华为网络安全组网
工行软件开发银行员工
基调网络安全手抄报
虚拟货币量化交易软件开发
华为数通通用软件开发怎么样
数据库数值表示
创建数据库步骤access
北京软件开发驻场哪家正规
鸟哥 服务器 第四版
网络安全法正式实施的日期是
奉贤区软件开发系统
免备案轻量服务器
sql数据库怎么添加两个主键
关于会员网络技术有限公司
莆田利众网络技术有限公司
兴业银行软件开发硕士
安徽整机销售软件开发