Word 批量转 PDF
时间:2022-07-23
本文章向大家介绍Word 批量转 PDF,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
现实中我们大多数人都做过将 Word 文件转成 PDF 文件的工作,如果需要转换的文件较少时,我们自己手动转没什么问题,但如果需要转换的文件比较多时,手动转起来也是一个不小的工作量,这时我们就需要找一个更加便利、高效的方式了。
我们使用 Python 就能实现将 Word 文件批量转成 PDF 文件,因此,当我们需要转换的文件比较多时,就可以考虑使用这种方式了。
转换功能的实现需要用到第三方库 comtypes
,安装使用 pip install comtypes
即可,实现的基本思路是:我们将需要转换的 Word 文件放在一个目录下,通过 Python 实现对文件的遍历、转换工作。
转换功能的代码实现也比较简单,如下所示:
def get_file(input_path, output_path):
# 获取所有文件名的列表
filename_list = os.listdir(input_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(input_path, wordname)
pdfpath = os.path.join(output_path, pdfname)
# 生成器
yield wordpath, pdfpath
def word2pdf(input_path, output_path):
word = comtypes.client.CreateObject("Word.Application")
word.Visible = 0
for wordpath, pdfpath in get_file(input_path, output_path):
newpdf = word.Documents.Open(wordpath)
newpdf.SaveAs(pdfpath, FileFormat=17)
newpdf.Close()
我们看一下效果,Word 文件内容如下所示:
看一下转换后的 PDF 文件:
我们可以看到,无论是文字样式还是图片,转换的效果都比较好。
- Uva 11300 Spreading the Wealth(递推,中位数)
- Uva 11729 Commando War (简单贪心)
- UVA 11292 Dragon of Loowater(简单贪心)
- Codeforces Beta Round #2 A,B,C
- 牛顿迭代法(Newton's Method)
- 最长递减子序列(nlogn)(个人模版)
- Selenium2+python自动化26-js处理内嵌div滚动条
- Selenium2+python自动化25-js处理日历控件
- 转负二进制(个人模版)
- Selenium2+python自动化24-js处理富文本
- 【干货】对抗自编码器PyTorch手把手实战系列——PyTorch实现对抗自编码器
- Selenium2+python自动化23-富文本(自动发帖)
- 2-Sat+输出可行解(个人模版)
- 协同过滤原理及Python实现
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解xamarin Android 实现ListView万能适配器
- android 设置wallpaper的操作方法
- R语言作图不显示中文解决办法,如何使用中文字体
- Android OKHTTP的单例和再封装的实例
- Android 自定义返回按钮的实例详解
- Android在layout xml中使用ViewStub完成动态加载问题
- Android编程中Intent实现页面跳转功能详解
- Android编程之桌面小部件AppWidgetProvider用法示例
- Android编程实现悬浮窗获取并显示当前内存使用量的方法
- Android ListView中动态添加RaidoButton的实例详解
- Android沉浸式状态栏设计的实例代码
- Android编程使用LinearLayout和PullRefreshView实现上下翻页功能的方法
- R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间
- Android 中两个Activity 之间的传值问题
- 学习使用Material Design控件(二)使用DrawerLayout实现侧滑菜单栏效果