Word 批量转 PDF

举报
Python小二 发表于 2021/07/15 23:24:19 2021/07/15
【摘要】 现实中我们大多数人都做过将 Word 文件转成 PDF 文件的工作,如果需要转换的文件较少时,我们自己手动转没什么问题,但如果需要转换的文件比较多时,手动转起来也是一个不小的工作量,这时我们就需要找一个更加便利、高效的方式了。 我们使用 Python 就能实现将 Word 文件批量转成 PDF 文件,因此,当我们需要转换的文件比较多时,就可以考虑使用这种方式了。 ...


现实中我们大多数人都做过将 Word 文件转成 PDF 文件的工作,如果需要转换的文件较少时,我们自己手动转没什么问题,但如果需要转换的文件比较多时,手动转起来也是一个不小的工作量,这时我们就需要找一个更加便利、高效的方式了。

我们使用 Python 就能实现将 Word 文件批量转成 PDF 文件,因此,当我们需要转换的文件比较多时,就可以考虑使用这种方式了。

转换功能的实现需要用到第三方库 comtypes,安装使用 pip install comtypes 即可,实现的基本思路是:我们将需要转换的 Word 文件放在一个目录下,通过 Python 实现对文件的遍历、转换工作。

转换功能的代码实现也比较简单,如下所示:

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()


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

我们看一下效果,Word 文件内容如下所示:

看一下转换后的 PDF 文件:

我们可以看到,无论是文字样式还是图片,转换的效果都比较好。

源码可在公众号 Python小二 后台回复 200504 获取。

文章来源: ityard.blog.csdn.net,作者:程序员野客,版权归原作者所有,如需转载,请联系作者。

原文链接:ityard.blog.csdn.net/article/details/105914863

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。