Word 文档中的批注是协作编辑和反馈的重要工具,可以帮助用户在文档中提出建议、说明以及进行讨论,而不影响文档内容。掌握 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 提供的 Paragraph.AppendComment() 方法可用于为指定段落添加批注。而批注对应的文本范围需要使用批注开始标记和结束标记来控制。为段落添加批注的具体步骤如下:
- 创建 Document 类对象,并使用 Document.LoadFromFile() 方法加载 Word 文档。
- 使用 Document.Sections.get_Item() 方法获取文档第一节。
- 使用 Section.Paragraphs.get_Item() 方法获取该节的第一个段落。
- 使用 Paragraph.AppendComment() 方法为段落添加批注。
- 通过 Comment.Format.Author 属性设置批注的作者。
- 创建评论开始标记和结束标记,并通过 CommentMark.CommentId 属性将它们设置为所创建评论的开始和结束标记。
- 使用 Paragraph.ChildObjects.Insert() 方法将批注开始标记和结束标记分别插入段首和段尾。
- 使用 Document.SaveToFile() 方法保存文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 类对象并加载一个 Word 文档
doc = Document()
doc.LoadFromFile("示例.docx")
# 获取第一节
section = doc.Sections.get_Item(0)
# 获取第四段
paragraph = section.Paragraphs.get_Item(3)
# 向段落添加注释
comment = Comment(doc)
comment.Body.AddParagraph().Text = "缺乏对货币历史的讲述。"
# 设置注释的作者
comment.Format.Author = "丽雯"
paragraph.ChildObjects.Add(comment)
# 创建注释开始标记和结束标记,并将它们设置为创建的注释的开始和结束标记
commentStart = CommentMark(doc, CommentMarkType.CommentStart)
commentEnd = CommentMark(doc, CommentMarkType.CommentEnd)
commentStart.CommentId = comment.Format.CommentId
commentEnd.CommentId = comment.Format.CommentId
# 在段落的开头和结尾分别插入注释开始标记和结束标记
paragraph.ChildObjects.Insert(0, commentStart)
paragraph.ChildObjects.Add(commentEnd)
# 保存文档
doc.SaveToFile("output/批注段落.docx")
doc.Close()
Python 添加批注到 Word 文档中的文本
Spire.Doc for Python 还支持查找指定文本并为其添加批注。具体步骤如下:
- 创建 Document 类对象,并使用 Document.LoadFromFile() 方法加载 Word 文档。
- 使用 Document.FindString() 方法查找要批注的文本。
- 创建批注类对象,通过 Comment.Body.AddParagraph().Text 属性设置批注内容,并通过 Comment.Format.Author 属性设置批注作者。
- 使用 TextSelection.GetAsOneRange() 方法将文本作为一个文本范围获取,并通过 TextRange.OwnerParagraph 属性获取文本所属的段落。
- 使用 Paragraph.ChildObjects.Insert() 方法在找到的文本后插入批注。
- 创建批注开始标记和结束标记,并通过 CommentMark.CommentId 属性将它们设置为创建批注的开始和结束标记。
- 使用 Paragraph.ChildObjects.Insert() 方法将批注开始标记和结束标记分别插入查找到的文本的前后。
- 使用 Document.SaveToFile() 方法保存文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 类的对象并加载一个 Word 文档
doc = Document()
doc.LoadFromFile("示例.docx")
# 查找要添加评论的文本
text = doc.FindString("交换媒介", True, True)
# 创建一个评论对象并设置评论的内容和作者
comment = Comment(doc)
comment.Body.AddParagraph().Text = "交换媒介还包括商品交换、信贷和资产交换等。"
comment.Format.Author = "琳达"
# 将找到的文本作为文本范围,并获取其所属的段落
range = text.GetAsOneRange()
paragraph = range.OwnerParagraph
# 将评论添加到段落中
paragraph.ChildObjects.Insert(paragraph.ChildObjects.IndexOf(range) + 1, comment)
# 创建评论起始标记和结束标记,并将它们设置为创建的评论的起始标记和结束标记
commentStart = CommentMark(doc, CommentMarkType.CommentStart)
commentEnd = CommentMark(doc, CommentMarkType.CommentEnd)
commentStart.CommentId = comment.Format.CommentId
commentEnd.CommentId = comment.Format.CommentId
# 在找到的文本之前和之后插入创建的评论起始和结束标记
paragraph.ChildObjects.Insert(paragraph.ChildObjects.IndexOf(range), commentStart)
paragraph.ChildObjects.Insert(paragraph.ChildObjects.IndexOf(range) + 1, commentEnd)
# 保存文档
doc.SaveToFile("output/批注文本.docx")
doc.Close()
Python 从 Word 文档中删除批注
Spire.Doc for Python 为删除批注提供了 Document.Comments.RemoveAt() 方法和 Document.Clear() 方法,前者可用于删除指定的批注,后者可删除所有批注。移除批注的详细步骤如下:
- 创建 Document 类对象,并使用 Document.LoadFromFile() 方法加载 Word 文档。
- 使用 Document.Comments.RemoveAt() 方法删除特定批注,或使用 Document.Comments.Clear() 方法删除所有批注。
- 使用 Document.SaveToFile() 方法保存文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 类对象并加载一个 Word 文档
doc = Document()
doc.LoadFromFile("示例1.docx")
# 移除第二个注释
doc.Comments.RemoveAt(1)
# 移除所有注释
#doc.Comments.Clear()
# 保存文档
doc.SaveToFile("output/删除批注.docx")
doc.Close()
Python 在 Word 文档中回复批注
Spire.Doc for Python 还支持通过 Comment.ReplyToComment(Comment) 方法将一条批注设置为对另一条批注的回复,从而实现在 Word 文档中对指定批注进行回复。具体步骤如下:
- 创建 Document 类对象,并使用 Document.LoadFromFile() 方法加载 Word 文档。
- 使用 Document.Comments.get_Item() 方法获取批注。
- 创建批注,并通过 Comment.Body.AddParagraph().Text 属性和 Comment.Format.Author 属性设置其内容和作者。
- 使用 Comment.ReplyToComment() 方法将创建的批注设置为对已获取批注的回复。
- 使用 Document.SaveToFile() 方法保存文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 类对象并加载一个 Word 文档
doc = Document()
doc.LoadFromFile("output/批注文本.docx")
# 获取一个注释
comment = doc.Comments.get_Item(0)
# 创建一个回复注释并设置其内容和作者
reply = Comment(doc)
reply.Body.AddParagraph().Text = "我们将提供有关货币历史的更多细节。"
reply.Format.Author = "莫里"
# 将创建的注释设置为获取到的注释的回复
comment.ReplyToComment(reply)
# 保存文档
doc.SaveToFile("output/回复批注.docx")
doc.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。