一、背景
在学校学习阶段通常很少使用PDF,工作以后就比较多。
PDF其实也有自己很多优先:
1)不可编辑
2)格式不会因为环境发生变化
3)体积小
一般演讲的PPT或者说明书、操作说明等都会转PDF以后再传播出去。
如果只是一个文档的话,WORD已经提供了另外为PDF的办法,如果有多个文档化,Python就有用武之地了。
二、实现办法
1.我们需要使用Python中的python-docx库和pywin32库
pip install python-docx pywin32
2.详细代码
# -*- coding: utf-8 -*-
"""
@Author : Nick
@Time : 2023/9/4
@Comment : #004 doc to pdf
"""
import os
import win32com.client
# Word文件转换为PDF
def doc_to_pdf(word_path, pdf_path):
try:
# 创建Word应用程序对象
word_app = win32com.client.Dispatch('Word.Application')
# 打开Word文档
doc = word_app.Documents.Open(word_path)
# 保存为PDF
doc.SaveAs(pdf_path, FileFormat=17)
# 关闭文档和应用程序
doc.Close()
word_app.Quit()
print(f'成功转换:{word_path} -> {pdf_path}')
return True
except Exception as e:
print(f'转换失败:{word_path},错误信息:{str(e)}')
return False
# 批量转换Word文件夹下的所有文档
def batch_doc_to_pdf(word_folder, pdf_folder):
# 检查PDF保存目录是否存在,若不存在则创建
if not os.path.exists(pdf_folder):
os.makedirs(pdf_folder)
# 遍历Word文件夹下的所有文件
for filename in os.listdir(word_folder):
if filename.endswith('.doc') or filename.endswith('.docx'):
word_path = os.path.join(word_folder, filename)
pdf_path = os.path.join(pdf_folder, f'{os.path.splitext(filename)[0]}.pdf')
doc_to_pdf(word_path, pdf_path)
# 调用批量转换函数进行转换
batch_doc_to_pdf('D:LabPython100doc_to_pdf', 'D:LabPython100doc_to_pdf')
发表回复