大家好!今天我们来聊聊工作中可能遇到的一个“头大”问题:如何批量将Word文档转成PDF?是不是光听听都感觉头皮发麻?
不用担心,今天我们就来分享一个Python小技巧,让你在批量转换文档时再也不用抓狂!
为什么需要批量Word转PDF?
想象一下,你是公司的行政小能手,每天面对成堆的合同、报告需要转换格式,手动操作简直不敢想象的累。关键是,老板还老催!Python作为技术潮人必备的技能之一,这时候就派上用场了!
工具准备
我们需要python-docx来处理Word文件内容,comtypes库用来调用Windows的脚本接口实现Word转PDF操作。这两位神器助攻绝对让你事半功倍!
首先,安装这两个库:
pip install python-docx comtypes
开工大吉
准备好了吗?让我们划开Python的面板,用代码解决这个烦人的问题吧!
import os
import comtypes.client
def docx_to_pdf(docx_path, pdf_path):
word = comtypes.client.CreateObject('Word.Application')
doc = word.Documents.Open(docx_path)
doc.SaveAs(pdf_path, FileFormat=17) # 17 is the format type for PDFs
doc.Close()
word.Quit()
def batch_convert_docx_to_pdf(input_folder, output_folder):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for filename in os.listdir(input_folder):
if filename.endswith(".docx"):
docx_path = os.path.join(input_folder, filename)
pdf_filename = f"{os.path.splitext(filename)[0]}.pdf"
pdf_path = os.path.join(output_folder, pdf_filename)
docx_to_pdf(docx_path, pdf_path)
print(f"Converted {filename} to PDF.")
# 运行批量转换
batch_convert_docx_to_pdf(
"C:/Users/olive/Desktop/待转换的Word",
"C:/Users/olive/Desktop/转换后的PDF")
代码解读
1、转换函数docx_to_pdf
这个小函数负责干实事儿,把一个Word文件转成PDF。FileFormat=17是指定保存为PDF格式的魔法数字。
2、批量转换函数 batch_convert_docx_to_pdf
这个函数会扫描指定的输入文件夹,找到所有的 .docx 文件,逐个调用 docx_to_pdf 函数批量转成PDF并输出到指定文件夹。
如果还有不明白的地方,可以细读一下下面的详细解析:
1、首先,导入了必要的库:
- os:用于文件路径操作和文件夹操作。
- comtypes.client:用于与COM(Component Object Model)组件进行通信的客户端模块,这里用于操作Microsoft Word应用程序。2、定义了函数docx_to_pdf:
- 该函数使用comtypes库创建了一个Word应用程序对象(word)。
- 打开并操作对应路径的Word文档,将其另存为PDF格式文件。
- 最后关闭Word文档和退出Word应用程序。3、定义了函数batch_convert_docx_to_pdf:
- 该函数接受两个参数:输入文件夹路径(input_folder)和输出文件夹路径(output_folder)。
- 如果输出文件夹不存在,则创建输出文件夹。
- 遍历输入文件夹中的所有文件,对扩展名为".docx"的文件执行转换操作,调用docx_to_pdf函数将Word文档转换为PDF格式。4.调用batch_convert_docx_to_pdf函数,传入待转换的Word文档所在的文件夹路径和转换后的PDF文件存放的文件夹路径。
激动人心的测试
我i们先准备几个Word文档,就用上次生成的合同文档吧:
接着,要修改一下测试代码,记得改成你自己的文件路径:
# 运行批量转换
batch_convert_docx_to_pdf(
"C:/Users/olive/Desktop/待转换的Word",
"C:/Users/olive/Desktop/转换后的PDF")
最后,运行一下我们的代码,检验一下我们的成果吧:
在【转换后的PDF】目录下,成功生成了3个PDF文档:
我们随便打开一个PDF文档,看一下效果:
效果非常棒!!
大功告成
怎么样?是不是感觉超级简单?只要执行一次后,你就可以坐在办公桌前翘脚喝咖啡,看着代码帮你忙得不亦乐乎!在这个快节奏的时代,掌握一些小技能真的能帮我们省去不少时间。希望今天的分享能帮助到你,批量转换Word文档再也不是难题。