向 Word 文档添加书签是一项非常有用的功能,它允许用户标记文档中的特定位置,以便快速参考或导航。书签用作虚拟占位符,可以更轻松地查找和重新访问文档的重要部分,而无需滚动浏览冗长的页面。本文将介绍如何使用 Spire.Doc for Python 在 Python 中向 Word 文档添加书签。
安装 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 为 Word 文档中的段落添加书签
Spire.Doc for Python 提供了 BookmarkStart 来表示书签的开始,并提供了 BookmarkEnd 来表示书签的结束。若要为段落添加书签,请将 BookmarkStart 对象放在段落的开头,并在段落末尾追加 BookmarkEnd 对象。以下是详细步骤:
- 创建一个 Document 对象。
- 使用 Document.LoadFromFile() 方法加载 Word 文件。
- 通过 Document.Sections[index].Paragraphs[index] 属性获取特定段落。
- 使用 Paragraph.AppendBookmarkStart() 方法创建一个 BookmarkStart,并使用 Paragraph.Items.Insert() 方法将其插入段落的开头。
- 使用 Paragraph.AppendBookmarkEnd() 方法在段落末尾附加一个 BookmarkEnd。
- 使用 Document.SaveToFile() 方法将文档保存到其他 Word 文件。
- Python
# 创建一个文档对象
doc = Document()
# 从文件中加载文档内容
doc.LoadFromFile('output/data/test.docx')
# 获取文档的第一个段落
paragraph = doc.Sections[0].Paragraphs[1]
# 在段落中添加一个书签开始标记
start = paragraph.AppendBookmarkStart('myBookmark')
# 将书签开始标记插入到段落的开头
paragraph.Items.Insert(0, start)
# 在段落中添加一个书签结束标记
paragraph.AppendBookmarkEnd('myBookmark')
# 将修改后的文档保存到文件中,格式为Docx2019
doc.SaveToFile('output/AddBookmarkToParagraph.docx', FileFormat.Docx2019)
Python 为 Word 文档中的所选文本添加书签
要为一段文本添加书签,您首先需要从文档中获取文本并获取其在其所有者段落中的位置。然后在它前面放置一个 BookmarkStart,在它之后放置一个 BookmarEnd。详细步骤如下:
- 创建一个 Document 对象。
- 使用 Document.LoadFromFile() 方法加载 Word 文件。
- 从文档中找到要标记的字符串。
- 获取其所有者段落及其在段落中的位置。
- 在文本之前插入 BookmarkStart,在文本后插入 BookmarkEnd。
- 使用 Document.SaveToFile() 方法将文档保存到其他 Word 文件。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个文档对象
doc = Document()
# 从文件中加载文档内容
doc.LoadFromFile('output/data/test.docx')
# 要查找的字符串
stringToFind = '成都冰蓝科技'
# 在文档中查找所有匹配的字符串
finds = doc.FindAllString(stringToFind, False, True)
# 获取第一个匹配的字符串
specificText = finds[0]
# 获取包含特定文本的段落
paragraph = specificText.GetAsOneRange().OwnerParagraph
# 获取特定文本在段落中的索引位置
index = paragraph.ChildObjects.IndexOf(specificText.GetAsOneRange())
# 在段落中添加一个书签开始标记
start = paragraph.AppendBookmarkStart("myBookmark")
# 将书签开始标记插入到特定文本之前
paragraph.ChildObjects.Insert(index, start)
# 在段落中添加一个书签结束标记
end = paragraph.AppendBookmarkEnd("myBookmark")
# 将书签结束标记插入到特定文本之后
paragraph.ChildObjects.Insert(index + 2, end)
# 将修改后的文档保存到文件中,格式为Docx2019
doc.SaveToFile("output/AddBookmarkToSelectedText.docx", FileFormat.Docx2019)
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。