>>> from env_helper import info; info()
页面更新时间: 2024-04-05 10:32:31
运行环境:
Linux发行版本: Debian GNU/Linux 12 (bookworm)
操作系统内核: Linux-6.1.0-18-amd64-x86_64-with-glibc2.36
Python版本: 3.11.2
2.10. 实例:Windows 下将 DOCX 文档转换为PDF格式¶
python-docx 模块可以用于 DOCX 文件的读取、解析、处理与保存。 但总归是有些限制。
PDF格式作为工作中的重点常用文件格式,PDF格式能够在打印的时候帮助我们保护文件的排版不被干扰,从而帮助我们能够更加“原汁原味“的还原出文件的内容;PDF格式不受系统的束缚,不论是MAC、Linux、Windows,都能够打开,兼容性强。同时PDF格式还具有不能被修改的特点,而word文档可能在不想修改时被修改。
2.10.1. 场景说明¶
PDF文件格式的好处丰富且实用性强。这里看一下使用 Python 进行 DOCX 自动保存为 PDF 文档的方法。
2.10.2. 解决思路¶
虽然 python-docx 很强大,但是要保存成 PDF 文件却没有这么简单。 Python 可以进行 DOCX 文档解析,但是要实现较高质量的排版, 并不是文字处理功能能实现的。
要实现转换的功能,使用 comtypes
来调用 Word
软件完成。这就要求系统中已经安装有 Word 软件。
2.10.3. 解决方法¶
使用 Python 读取文件另存为PDF格式,主要的步骤有两个,
打开word软件
另存为新文件
导入库,并且制定文件所在位置,一定要注意,windows下一定要使用绝对路径。
import os
import comtypes.client
打开word应用,然后另存为PDF格式,命名依旧使用word的文件名,所以不可能会出现重复的命名。
doc_name = 'indoc.docx
out_file = file_path+word_path.split(".")[0]+".pdf"
word=comtypes.client.CreateObject('Word.Application')
doc=word.Documents.Open(in_file)
doc.SaveAs(out_file,FileFormat=17)
doc.Close()
word.Quit()
2.10.4. 小结¶
这段代码只能在Windows下运行。转换后生成同名 PDF 文档。