现实中咱们大多数人都作过将 Word 文件转成 PDF 文件的工做,若是须要转换的文件较少时,咱们本身手动转没什么问题,但若是须要转换的文件比较多时,手动转起来也是一个不小的工做量,这时咱们就须要找一个更加便利、高效的方式了。python
咱们使用 Python 就能实现将 Word 文件批量转成 PDF 文件,所以,当咱们须要转换的文件比较多时,就能够考虑使用这种方式了。spa
转换功能的实现须要用到第三方库 comtypes
,安装使用 pip install comtypes
便可,实现的基本思路是:咱们将须要转换的 Word 文件放在一个目录下,经过 Python 实现对文件的遍历、转换工做。3d
转换功能的代码实现也比较简单,以下所示:code
def get_file(input_path, output_path): # 获取全部文件名的列表 filename_list = os.listdir(input_path) # 获取全部 Word 文件名列表 wordname_list = [filename for filename in filename_list \ if filename.endswith((".doc", ".docx"))] for wordname in wordname_list: # 分离 Word 文件名称和后缀,转化为 PDF 名称 pdfname = os.path.splitext(wordname)[0] + ".pdf" # 若是当前 Word 文件对应的 PDF 文件存在,则不转化 if pdfname in filename_list: continue # 拼接路径和文件名 wordpath = os.path.join(input_path, wordname) pdfpath = os.path.join(output_path, pdfname) # 生成器 yield wordpath, pdfpath def word2pdf(input_path, output_path): word = comtypes.client.CreateObject("Word.Application") word.Visible = 0 for wordpath, pdfpath in get_file(input_path, output_path): newpdf = word.Documents.Open(wordpath) newpdf.SaveAs(pdfpath, FileFormat=17) newpdf.Close()
咱们看一下效果,Word 文件内容以下所示:orm
看一下转换后的 PDF 文件:blog
咱们能够看到,不管是文字样式仍是图片,转换的效果都比较好。图片
源码可在公众号 Python小二 后台回复 200504 获取。ip