
在文档创建和协作的动态领域中,在 Microsoft Word 中添加和管理注释的能力是不可或缺的。注释充当虚拟讨论板,允许协作者交换想法、提出改进建议并提供反馈,而无需更改原始内容。此功能不仅促进了有效沟通,而且还增强了协作编辑过程,使其更加精简和高效。因此,在本指南中,我们将深入研究添加和删除注释的基本方面,揭示使用 .NET REST API 在 MS Word 中这一重要功能的潜力和好处。
使用 .NET REST API 管理评论
使用 Aspose.Words Cloud SDK for .NET 操作和添加注释不仅能管理注释,还能带来诸多好处和多种功能。除此之外,SDK 还提供多种功能,包括 Word 文档生成、Word 到 JPG、Word 到 PDF、Word 到 ODT 等转换、文本和格式处理、图像处理和各种功能,使您能够增强各种场景的文档处理能力。
从 DOCX 文件获取注释
您可以利用它从文档中读取所有或特定的评论。GetComments 方法提供了从 DOCX 文件中读取用户评论的功能。下面指定的是 cURL 命令,您可以使用它在命令提示符上读取评论。
cURL 命令
请注意,为了阅读评论,您需要提供存储在云存储上的文档的详细信息,并且只有授权用户才能获得访问 API 的权限。因此,您需要首先检索 JWT 身份验证令牌并在上述命令中使用它。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=xxxxxxx-1c8e-4ea4-a948-3857547232fa&client_secret=xxxxxx" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accpet: application/json"
一旦生成了 JWT 令牌,请执行以下命令来获取 Word 文档中的所有评论。
curl -v "https://api.aspose.cloud/v4.0/words/Volume%201.docx/comments" \
-X GET \
-H "accept: application/json" \
-H "Authorization: Bearer <JWT Token>"
请求 URL
https://api.aspose.cloud/v4.0/words/Volume%201.docx/comments
C#.NET
为了读取文档中的特定评论,请按照以下步骤操作:
- 初始化WordsApi类的实例。
- 创建一个 GetCommentRequest 类的对象,其中我们提供输入 Volume 1.docx 文件名和注释索引值作为输入参数。
- 最后,通过传递 GetComment(..) 方法返回的值来初始化 CommentResponse 对象。
const string clientID = "xxxxxxxxx"; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
const string clientSecret = "xxxxxxxx"; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
// 初始化WordsApi对象
Aspose.Words.Cloud.Sdk.WordsApi wordsApi = new Aspose.Words.Cloud.Sdk.WordsApi(clientID, clientSecret);
// 输入文件名
String filename= "Volume 1.docx";
// 评论索引
int commentIndex = 0;
// create an object of GetCommentRequest where we pass 输入文件名 and comment index value
Aspose.Words.Cloud.Sdk.Model.Requests.GetCommentRequest request = new Aspose.Words.Cloud.Sdk.Model.Requests.GetCommentRequest(filename, commentIndex, null, null, null, null);
// 创建 CommentResponse 实例并从文档中读取评论
Aspose.Words.Cloud.Sdk.Model.CommentResponse response = wordsApi.GetComment(request);
// 在控制台中显示评论
Console.Write(response.Comment);
获取所有评论
该 API 还提供了从文档中获取所有评论的功能(以防我们不想在各个评论之间来回切换)。对于此要求,您需要创建 GetCommentsRequest、CommentsResponse 类的实例,并调用 WordsApi 对象的 GetComments(..) 方法。
在 Word 文档中插入注释
该API还能够在Word文档中添加/插入新的注释对象。
cURL 命令
curl -v "https://api.aspose.cloud/v4.0/words/Volume%201.docx/comments" \
-X POST \
-H "accept: application/json" \
-H "Authorization: Bearer <JWT Token>" \
-H "Content-Type: application/json" \
-d "{\"RangeStart\":{\"Node\":{\"link\":{\"Href\":\"https://api.aspose.cloud/v4.0/words/Volume 1.docx/sections/0/body/tables/0/rows/1/cells/1/paragraphs/1/runs/0\",\"Rel\":\"self\",\"Type\":\"string\",\"Title\":\"Heading 2\"},\"NodeId\":\"0.1.0.1.1.1.1\"},\"Offset\":0},\"RangeEnd\":{\"Node\":{\"link\":{\"Href\":\"https://api.aspose.cloud/v4.0/words/Volume 1.docx/sections/0/body/tables/0/rows/1/cells/1/paragraphs/5/runs/0\",\"Rel\":\"self\",\"Type\":\"string\",\"Title\":\"Heading 2\"},\"NodeId\":\"0.1.0.1.1.1.1\"},\"Offset\":0},\"Author\":\"Nayyer Shahbaz\",\"Initial\":\"MOU\",\"DateTime\":\"2020-12-07T04:10:03.942Z\",\"Text\":\"Comments Inserted using Aspose.Words Cloud API\"}"
C#.NET
const string clientID = "xxxxxxxxx"; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
const string clientSecret = "xxxxxxxx"; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
// 初始化WordsApi对象
Aspose.Words.Cloud.Sdk.WordsApi wordsApi = new Aspose.Words.Cloud.Sdk.WordsApi(clientID, clientSecret);
// 输入文件名
String filename = "Volume 1.docx";
// 评论索引
int commentIndex = 0;
Aspose.Words.Cloud.Sdk.Model.NodeLink link = new Aspose.Words.Cloud.Sdk.Model.NodeLink()
{
NodeId = "0.1.0.1.1.1.1"
};
Aspose.Words.Cloud.Sdk.Model.DocumentPosition documentPosition = new Aspose.Words.Cloud.Sdk.Model.DocumentPosition()
{
Node = link,
Offset = 0
};
Aspose.Words.Cloud.Sdk.Model.CommentInsert commentInsert = new Aspose.Words.Cloud.Sdk.Model.CommentInsert()
{
Initial = "Aspose",
Author = "Nayyer Shahbaz",
RangeStart = documentPosition,
RangeEnd = documentPosition,
Text = "Comment added through API"
};
// create an object of GetCommentRequest where we pass 输入文件名 and comment index value
Aspose.Words.Cloud.Sdk.Model.Requests.InsertCommentRequest request =
new Aspose.Words.Cloud.Sdk.Model.Requests.InsertCommentRequest(filename, commentInsert, null, null, null);
// 创建 CommentResponse 实例并从文档中读取评论
Aspose.Words.Cloud.Sdk.Model.CommentResponse response = wordsApi.InsertComment(request);

图片 1:新插入评论的预览
更新 Word 文件中的注释
除了解析和添加注释之外,该API还支持更新Word文档中现有注释的功能。
cURL 命令
curl -X PUT "https://api.aspose.cloud/v4.0/words/Volume%201.docx/comments/1" \
-H "accept: application/json" \
-H "Authorization: Bearer <JWT Token>" \
-H "Content-Type: application/json" \
-d "{\"RangeStart\":{\"Node\":{\"link\":{\"Href\":\"https://api.aspose.cloud/v4.0/words/Volume 1.docx/sections/0/body/tables/0/rows/1/cells/1/paragraphs/1/runs/0\",\"Rel\":\"self\",\"Type\":\"string\",\"Title\":\"Heading 1\"},\"NodeId\":\"0.1.0.1.1.1.1\"},\"Offset\":0},\"RangeEnd\":{\"Node\":{\"link\":{\"Href\":\"https://api.aspose.cloud/v4.0/words/Volume 1.docx/sections/0/body/tables/0/rows/1/cells/1/paragraphs/1/runs/0\",\"Rel\":\"string\",\"Type\":\"string\",\"Title\":\"Heading 1\"},\"NodeId\":\"0.1.0.1.1.1.1\"},\"Offset\":0},\"Author\":\"Nayyer Shahbaz\",\"Initial\":\"Aspose.Words\",\"DateTime\":\"2020-12-07T06:18:31.348Z\",\"Text\":\"Comments updated using Aspose.Words Cloud API\"}"
C#.NET
为了以编程方式更新 Word 文档中的注释,请按照下面指定的说明进行操作。
- 创建WordsApi类的实例。
- 创建一个定义注释NodeID的NodeLink对象。
- 创建了 DocumentPosition 类的新对象,用于定义 RangeStart 和 RangeEnd 值。
- 创建一个 CommentUpdate 对象,通过分配 DocumentPosition 实例值和注释中要更新的文本来定义注释首字母、作者姓名、RangeStart 和 RangeEnd 详细信息。
const string clientID = "xxxxxxxxx"; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
const string clientSecret = "xxxxxxxx"; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
// 初始化WordsApi对象
Aspose.Words.Cloud.Sdk.WordsApi wordsApi = new Aspose.Words.Cloud.Sdk.WordsApi(clientID, clientSecret);
// 输入文件名
String filename = "Volume 1.docx";
// 评论索引
int commentIndex = 1;
Aspose.Words.Cloud.Sdk.Model.NodeLink link = new Aspose.Words.Cloud.Sdk.Model.NodeLink()
{
NodeId = "0.1.0.1.1.1.1"
};
Aspose.Words.Cloud.Sdk.Model.DocumentPosition documentPosition = new Aspose.Words.Cloud.Sdk.Model.DocumentPosition()
{
Node = link,
Offset = 0
};
Aspose.Words.Cloud.Sdk.Model.CommentUpdate commentUpdate = new Aspose.Words.Cloud.Sdk.Model.CommentUpdate()
{
Initial = "Aspose",
Author = "Nayyer Shahbaz",
RangeStart = documentPosition,
RangeEnd = documentPosition,
Text = "Comments updated using Aspose.Words Cloud API"
};
// create an object of GetCommentRequest where we pass 输入文件名 and comment index value
Aspose.Words.Cloud.Sdk.Model.Requests.UpdateCommentRequest request =
new Aspose.Words.Cloud.Sdk.Model.Requests.UpdateCommentRequest(filename, commentIndex, commentUpdate, null, null, null);
// 创建 CommentResponse 实例并从文档中读取评论
Aspose.Words.Cloud.Sdk.Model.CommentResponse response = wordsApi.UpdateComment(request);

图片 2:更新后的评论预览
结果文档 Volume 1 - updated.docx 也附于此。
从 Word 文档中删除注释
您还可以使用 REST 云 API 从 word 文件中删除评论。
cURL 命令
curl -X DELETE "https://api.aspose.cloud/v4.0/words/Volume%201.docx/comments/0" \
-H "accept: /" \
-H "Authorization: Bearer <JWT Token>"
C#.NET
- 创建WordsApi类的对象。
- 创建 DeleteCommentRequest 类的实例,该类以输入文件和评论索引作为参数。
- 最后,DeleteComment(…) 方法以 DeleteCommentRequest 对象作为参数。
const string clientID = "xxxxxxxxx"; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
const string clientSecret = "xxxxxxxx"; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
// 初始化WordsApi对象
Aspose.Words.Cloud.Sdk.WordsApi wordsApi = new Aspose.Words.Cloud.Sdk.WordsApi(clientID, clientSecret);
// 输入文件名
String filename = "Volume 1.docx";
// 评论索引
int commentIndex = 0;
Aspose.Words.Cloud.Sdk.Model.Requests.DeleteCommentRequest request =
new Aspose.Words.Cloud.Sdk.Model.Requests.DeleteCommentRequest(filename, commentIndex, null, null, null, null, null, null, null);
wordsApi.DeleteComment(request);

图片 3:已删除评论的预览