当前位置:  首页>> 技术小册>> Python与办公-玩转PDF

将Word的文件类型转PDF,如果是要在Windows平台上转换,你有没有想到转换思路?之前我们不是有试过将旧版的Office文档转成新版的Office文档吗?比如说将xls格式文件转成xlsx格式文件,过程就是使用win32com打开一个xls文档然后再将其保存为xlsx文档。

用Word软件也可以将文件保存为PDF文件,那么就应该想到使用win32com也一样可以办到这种转换,虽然不知道在Word中PDF格式的编号,但思路还是要有的。

当然这种思路别人肯定都已经想到了,并且已经做成一个库,叫作docx2pdf。docx2pdf库不仅支持在Windows系统运行,还支持在macOS系统运行。咦?之前不是说win32com只能在Windows平台运行吗?没错,但docx2pdf库会对操作系统进行判断,如果是在Windows系统中运行,它调用的是win32com,如果是在macOS系统中运行,它会使用jxa技术实现转换。

首先,老样子,要使用第三方库那就必须先安装,代码如下:

  1. pip install docx2pdf

安装完成之后,我们看一下怎么转换Word文档为PDF文档,代码如下:

  1. from docx2pdf import convert
  2. docx_path = "./convert_ files/转换测试文档.docx"
  3. save_path = "./convert_ files/转换测试文档.pdf"
  4. convert(docx_path,save_path)

这代码似乎简洁得不得了了。实际上我们只用到了一个convert()函数,把要转换的原文档路径和保存后的文档路径传进去就可以完成转换了,是不是非常简单?如果你想再简单点,只要传进原文档路径文档格式,不传入保存后的路径也可以,它会将转换后得到的PDF文档保存到原文档路径。

如果想批量转换文档格式的话,可以读取一个文件夹里的所有Word文档,然后再写一个循环调用convert()函数即可。但其实这些步骤人家也写好了,在调用convert()函数的时候传入的路径是一个文件夹而不是文件,那么它会自动读取并过滤出该文件夹里的所有Word文档,这样就可以完成批量转换了,代码如下:

  1. from docx2pdf import convert
  2. docx_path = "./convert_ files/"
  3. convert(docx_path)

虽然docx2pdf库已经帮我们写好了批量读取Word文档的功能,但你自己还是要学会如何写这个功能,毕竟都学到这里了,(不会又是直接跳到这里的吧?)若还是不会的话,建议你再去看看以前讲过的知识点和案例,一定要会基础操作,稳扎稳打才能走得更快更远。