>>> 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 文档。