前言

啊,过了这么久,我终于要开始看CPA了。今年要从去年的失败中总结教训,总之,不能再盲目跟视频课了,还是得自己看书和讲义。

于是我就下载了几百份讲义文档,但我又觉得Mac看Word文档很不方便,所以就去网上找了一点批量转换Word的教程,虽然有很多软件可以用,但我还是觉得用Python方便一点。

虽说是用Python,但是核心还是基于Word的,实质上就是通过pywin32这个包去调用Word的函数,用Word打开doc文件,再另存为PDF文件,虽然听起来和手动操作没什么区别,但毕竟可以省下一些点击鼠标的时间嘛!

另外,Pywin32只支持Windows,所以必须在安装了Word的Windows系统里才可以正常运行。

正文

先安装pywin32的包:

pip install pywin32

然后编写我们的代码:

import os
from win32com.client import Dispatch

# doc转pdf
def doc2pdf(path, filename):
    word = Dispatch('Word.Application')
    doc = word.Documents.Open('{}\\{}'.format(path, filename))
    doc.SaveAs('{}\\pdf\\{}'.format(path, filename.replace(".docx", ".pdf").replace(".doc", ".pdf")), FileFormat=17)
    doc.Close()
    word.Quit()


path = '\\\\Mac\\Home\\Downloads\\讲义'
doc_list = os.listdir(path)
if not os.path.exists('{}\\pdf'.format(path)):
    os.mkdir('{}\\pdf'.format(path))

for filename in doc_list:
    if filename.endswith(".doc") or filename.endswith(".docx"):
        doc2pdf(path, filename)

为了避免不必要的麻烦,我用到的路径都是绝对路径。如果你要问为什么绝对路径这么奇怪……嗯,也许是因为我用了Windows虚拟机吧。

参考

这篇文章帮了我很多,呃,也许可以说我差不多是照搬这篇的:python3 word转pdf