方法:先用python小代码把word统一为.docx文件,然后使用docx2pdf库直接在控制台转换,一行代码就实现了。
目录
1 Word转PDF
由于我们的word有些可能是.doc后缀或者是.docx后缀的,所以首先要在转化前同意为.docx后缀的。
1.1 Word的.doc文件转换为.docx文件
首先下使用下面的命令行下载pywin32库:
pip install pywin32
如果不行的话就试一试pypiwin32这个库:
pip install pypiwin32
安装好了之后打开可以使用的python编辑软件,使用下面代码先把.doc的文件转为.docx文件:
Tip:最好是先把.doc文件挑出来放在一个文件夹里面,然后对这个文件夹操作
"""
修改文档格式.doc转为.docx,并保存在子目录docx下
"""
import pythoncom
import os
import win32com.client as wc
# 从最后开始替换某字符串几次
def rreplace(s, old, new, occurrence):
li = s.rsplit(old, occurrence)
return new.join(li)
# 读取文件夹下的doc文件名列表
def doc_file_name(file_dir):
fileList = []
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == '.doc':
fileList.append(os.path.join(root, file))
# 若.doc文档所在目录不存在docx子目录则自动创建
docx_dir = root + '\\docx'
if not os.path.exists(docx_dir):
os.makedirs(docx_dir)
return fileList
# doc文件另存为docx
def doc_to_docx(doc_name):
pythoncom.CoInitialize()
try:
word = wc.Dispatch("Word.Application")
doc = word.Documents.Open(doc_name, Encoding='utf-8')
# 上面的地方只能使用完整绝对地址,相对地址找不到文件,且,只能用“\\”,不能用“/”,哪怕加了 r 也不行,涉及到将反斜杠看成转义字符。
doc_name = rreplace(doc_name, "\\", "\\docx\\", 1)
doc.SaveAs(doc_name.replace(".doc", ".docx"), 12, False, "", True, "", False, False, False, False)
# 转换后的文件,12代表转换后为docx文件
doc.Close
except Exception as e:
print(e.message)
finally:
# 对com操作,一定要确保退出word应用
if word:
word.Quit
del word
# 释放资源
pythoncom.CoUninitialize()
def main():
#地址是.doc文件所在的文件夹地址,这里111是我桌面一个111的文件夹名称
file_list = doc_file_name("C:/Users/柴宝/Desktop/111")
print(len(file_list))
for file in file_list:
doc_to_docx(file)
if __name__ == '__main__':
main()
1.2 Word的.docx文件转换为PDF
首先需要使用下面的代码安装docx2pdf库(因为这个库可以不用写代码实现,但是缺点就是只能对.docx文件操作,所以才要上面的转化):
pip install docx2pdf
安装好了之后直接使用放大镜搜索cmd进入命令提示符界面输入:
docx2pdf C:\Users\柴宝\Desktop\111\ C:\Users\柴宝\Desktop\111\
第一个位置docx2pdf:这是固定输入的
第二个位置的地址:这是.docx文件所在的文件夹地址
第三个位置的地址:这是想要把pdf保存到哪里
(中间使用空格隔开)
命令提示符就是控制台,就是下面这种界面输入上面那串代码:
然后就是enter键之后等待processing了。
接下来就是点开文件夹看成功了没有,成功了然后就大功告成了,没成功那就是我也不知道。我这样操作反正是成功了嘿嘿。