社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

使用python将word文档转换为PDF文档

生信修炼手册 • 3 年前 • 527 次点击  
欢迎关注”生信修炼手册”!
对于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·
—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。
  更多精彩
  写在最后
转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。

扫描下方二维码,关注我们,解锁更多精彩内容!

一个只分享干货的

生信公众号




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/99298
 
527 次点击