python如何将word转化为pdf文件
1、python将word转换为pdf,使用的方法是利用windows系统的com组件来调用微软的office提供的库文件。因此,在写代码之前,首先要保证两点:1. 安装好office套件2. 安装好调用com组件的库pywin32如下面两张图中所示,第一张图中是安装好的office2016,第二张图中是使用pip命令查看安装好的python包,findstr是从所有的包里找包含win32字符的包名,可以看到确实安装好了pywin32这个包。
2、软件都准备好以后,我们来准备测试的文件。我这里在H盘里创建好一个测试用的test.docx文件。用word打开它,在里面写入一些便于检验的内容。如下面第二张图中所示。
3、然后就可以着手编写代码了,第一段代码如下面图中所示:首先引入用来处理路径的os腻戴怯猡包,然后引入win32com.client里提供的用于调用word库文件的包Dispatch、艘早祓胂constants和gencache。包引入完毕后,创建word文件和pdf文件的路径,word文件路径直接指定。然后pdf文件名是将word文件名切出来,然后加上pdf后缀。
4、word文件和pdf文件路径处理好后执行打印,结果如下所示,从下面图中可以看到。路径正确。
5、然后来看第二段代码:在第二端代码中,首先使用dispatch函数创建一个wor蟠校盯昂d程序的后台进程,默认是不显姨胀兽辱示,只在后台处理。创建完毕后,使用示例的Documents.Open函数打开word文件,返回一个文件对象。然后调用文件对象的ExportAsFixedFormat函数将文件内容输出。输出的格式是wxExportPDFFormat,这个是微软定义的格式,即以PDF的格式输出。这里要注意,这个格式只在office2007即以上版本才能使用。最后在外面加上try...except...finally模块进行异常处理,在finally块中关闭打开的word后台进程。
6、代码编写完毕后,使用编译器执行编写好的代码,结果如下面图中所示,在测试目录中生产了一个test.pdf文件,打开这个pdf文件后,可以发现,文件的内容和word文件中的内容一模一样,说明格式转换正确。我们的目的实现了。
7、但是上面的图中只是使用代码转换单个文件,像我们之前说到的。转换单个文件只需要使用word的另存为功能就可以了,不需要python。python可以一次转换多个文件。因此将代码进行改进,如下面图中所示:我们定义了一个类,在类中,将word文件路径、pdf文件路径和word后台进程实例作为类的属性。
8、然后再定义一个转换函数convert,如下面图中所示:在这个convert函数中,直接向打开文档函数Documents.Open传递路径参数。打开文件后,再使用转存函数另存为PDF格式即可。这样就在一个类中实现了对应的功能
9、如下面图中所示,是调用这个类的实例,直接创建一个类对象,给它传递一个word文件的参数,然后调用convert函数。执行程序即可。如果有多个文件的话,只需要写一个for循环,然后多次创建,多次执行即可。这样就可以达到批量转换的目的。