对于windows系统的编程开发,微软一开始提供了基于VB语言的接口,后来又推出了.NET框架。对于word等offices套件的自动化操作,由于原生支持的特性,采用这些语言是最为方便且灵活的,唯一的缺点就是这些语言的学习成本相对较高。
python以简洁易学而出名,在python中,也提供了pywin32这样的模块,对windows官方的API进行了封装,适用于windows平台的编程开发。其功能涵盖了windows平台的方方面面,对于处理word文档这样的任务,自然是远远胜任的。
对于win32模块,将word文档另存为pdf的代码如下
>>> import win32com
>>> from win32com.client import Dispatch
>>> word = Dispatch('Word.Application')
>>> doc = word.Documents.Open('C:/Users/Test/Desktop/out.docx')
>>> doc.SaveAs('C:/Users/Test/Desktop/output.pdf', 17)
>>> doc.Close()
>>> word.Quit()
需要注意的一点就是,文件需要采用绝对路径,注意上述绝对路径的写法,没有用经典的\\写法,因为这样的写法存在字符转移等问题,用/写法,可以最大程度的保证路径的正确。
为了更加方便的完成word转换pdf的任务,还有一个简历在pywin32基础上的模块-docx2pdf, 该模块支持windows和macOS两个平台,可以方便的批量完成word文档转pdf的任务,基本用法如下
>>> from docx2pdf import convert
>>> convert("C:/Users/Test/Desktop/out.docx", "C:/Users/Test/Desktop/output.pdf")
在实际测试中,会遇到如下错误
AttributeError: Word.Application.Application
这个报错只是在关闭word进程时的报错,并不会影响转换的pdf文件。当有批量的word需要转换时,用docx2pdf模块,更加的方便。
该模块提供了一个转换脚本,这样通过命令行就可以批量处理了,基本用法如下
# 转换单个文件
docx2pdf myfile.docx
# 将一个目录下的word文档都转换成pdf文件
docx2pdf myfolder/
通过上述方法,可以轻松完成word文档的转换任务,虽然效率上没有那么高,但是胜在免费,而且操作也比较简便。
·end·
—如果喜欢,快分享给你的朋友们吧—
关注我们,解锁更多精彩内容!