Microsoft Word 是日常工作和生活中常用的一种数字文档格式,但有时为了确保文档的内容、格式和布局在不同设备上的一致性和跨平台兼容性,您可能需要将 Word 文件转换成PDF格式。本文将介绍如何使用 Spire.Doc for Python 通过代码将 Word 转换为 PDF。
- 将 Doc 或 Docx 转换为 PDF
- 将 Word 转换为加密的 PDF
- 将 Word 转换为带书签的 PDF
- 将 Word 转换为 PDF 时嵌入字体
- 将 Word 转换为 PDF 时设置图像质量
安装 Spire.Doc for Python
本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc
如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python
使用 Python 将 Doc 或 Docx 转换为 PDF
Spire.Doc for Python 提供的 Document.SaveToFile(string fileName, FileFormat fileFormat) 方法可将 Word 另存为 PDF、XPS、HTML、RTF 等格式。如果您只想将 Word 文档保存为常规 PDF 而不进行其他设置,请参考以下步骤。
- 创建一个 Document 类的对象。
- 使用 Document.LoadFromFile() 方法加载 Word (.doc/.docx) 文档。
- 使用 Doucment.SaveToFile() 方法将文档保存为 PDF 格式。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建 Document 类的对象
document = Document()
# 加载一个 .doc 或 .docx 文档
document.LoadFromFile("工作汇报.docx")
# 将文档保存为PDF格式
document.SaveToFile("Output/ToPDF.pdf", FileFormat.PDF)
document.Close()
使用 Python 将 Word 转换为加密的 PDF
要将 Word 转换为受密码保护的 PDF,可以使用 Document.SaveToFile(string fileName, ToPdfParameterList paramList) 方法。其中 ToPdfParameterList 参数可控制 Word 文档转 PDF 的过程,例如,转换时是否加密文档。具体步骤如下。
- 创建一个 Document 类的对象。
- 使用 Document.LoadFromFile() 方法加载 Word 文档。
- 创建 ToPdfParameterList 类的对象,用于设置转换选项。
- 指定打开密码和权限密码,然后使用 ToPdfParameterList.PdfSecurity.Encrypt() 方法为生成的 PDF 设置这两个密码。
- 使用 Doucment.SaveToFile(string fileName, ToPdfParameterList paramList) 方法将 Word 文档保存为带密码的 PDF 文件。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建 Document 类的对象
document = Document()
# 加载 Word 文档
document.LoadFromFile("工作汇报.docx")
# 创建 ToPdfParameterList 类的对象
parameter = ToPdfParameterList()
# 设置打开密码和权限密码,并用其保护生成的 PDF 文件
openPsd = "abc123"
permissionPsd = "E-iceblue"
parameter.PdfSecurity.Encrypt(openPsd, permissionPsd, PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key128Bit)
# 将文档保存为加密的PDF
document.SaveToFile("Output/加密Pdf.pdf", parameter)
document.Close()
使用 Python 将 Word 转换为带书签的 PDF
书签可以增强文档的可读性。在转换 Word 文档到 PDF 时,您可能希望保留现有书签或根据标题创建新书签。以下是将 Word 转换为带书签的 PDF 的具体步骤。
- 创建一个 Document 类的对象。
- 使用 Document.LoadFromFile() 方法加载 Word 文档。
- 创建 ToPdfParameterList 类的对象,用于设置转换选项。
- 使用 ToPdfParameterList.SetCreateWordBookmarksUsingHeadings 属性根据 Word 中的标题创建 PDF 书签。或使用 ToPdfParameterList.CreateWordBookmarks 属性根据 Word 中的现有书签创建 PDF 书签。
- 使用 Doucment.SaveToFile(string fileName, ToPdfParameterList paramList) 方法将文档保存为带有书签的 PDF 文件。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建 Document 类的对象
document = Document()
# 加载 Word 文档
document.LoadFromFile("工作汇报.docx")
# 创建 ToPdfParameterList 类的对象
parames = ToPdfParameterList()
# 根据 Word 中的标题创建 PDF 书签
parames.CreateWordBookmarksUsingHeadings = True
# 根据 Word 中的现有书签创建 PDF 书签
#parames.CreateWordBookmarks = True
# 将文档保存为带书签的PDF
document.SaveToFile("Output/带书签的PDF.pdf", parames)
document.Close()
使用 Python 将 Word 转换为 PDF 时嵌入字体
要确保生成的 PDF 文档在各种设备上的外观一致性,那么您需要在转换时将 Word 文档中使用的字体嵌入到 PDF 文档中。具体步骤如下。
- 创建一个 Document 类的对象。
- 使用 Document.LoadFromFile() 方法加载 Word 文档。
- 创建 ToPdfParameterList 类的对象,用于设置转换选项。
- 通过将 ToPdfParameterList.IsEmbeddedAllFonts 属性设置为 true,在生成的 PDF 中嵌入字体
- 使用 Doucment.SaveToFile(string fileName, ToPdfParameterList paramList) 方法将文档保存为 PDF。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建 Document 类的对象
document = Document()
# 加载 Word 文档
document.LoadFromFile("工作汇报.docx")
# 创建 ToPdfParameterList 类的对象
parameter = ToPdfParameterList()
# 将字体嵌入到生成的PDF中
parameter.IsEmbeddedAllFonts = True
# 将文档保存为PDF
document.SaveToFile("Output/嵌入字体.pdf", parameter)
document.Close()
使用 Python 将 Word 转换为 PDF 时设置图像质量
包含大量高质量图像的文档通常尺寸较大。在将 Word 转换为 PDF 时,您可以决定是否压缩图像质量。具体步骤如下。
- 创建一个 Document 类的对象。
- 使用 Document.LoadFromFile() 方法加载 Word 文档。
- 通过 Document.JPEGQuality 属性设置图像质量。
- 使用 Doucment.SaveToFile() 方法将文档保存为 PDF 文件。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建 Document 类的对象
document = Document()
# 加载 Word 文档
document.LoadFromFile("工作汇报.docx")
# 将图像压缩到原始质量的40%
document.JPEGQuality = 40
# 保留原始图像质量
# document.JPEGQuality = 100
# 将文档保存为PDF
document.SaveToFile("Output/设置图片质量.pdf", FileFormat.PDF)
document.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。