word 文档中的批注是协作编辑和反馈的重要工具,可以帮助用户在文档中提出建议、说明以及进行讨论,而不影响文档内容。掌握 word 文档评论的高效处理方法能够显著提升文档协作编辑效率。本文将介绍如何使用 spire.doc for python 通过 python 程序在 word 文档中添加、删除或回复批注。
安装 spire.doc for python
本教程需要用到 spire.doc for python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.doc
如果您不确定如何安装,请参考此教程:如何在 vs code 中安装 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 天的临时许可证。