彩票走势图

logo Aspose中文文档
文档彩票走势图>>Aspose中文文档>>删除所有或特定作者的评论

删除所有或特定作者的评论


Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

Aspose.Words for .NET 最新下载

使用Aspose.Words

以下代码示例展示了如何删除文档中的所有注释:


// For complete examples and data files, please go to //github.com/aspose-words/Aspose.Words-for-.NET
static void RemoveComments(Document doc)
{
// Collect all comments in the document
NodeCollection comments = doc.GetChildNodes(NodeType.Comment, true);
// Remove all comments.
comments.Clear();
}

点击复制


以下代码示例展示了如何删除特定作者的评论:


// For complete examples and data files, please go to //github.com/aspose-words/Aspose.Words-for-.NET
static void RemoveComments(Document doc, string authorName)
{
// Collect all comments in the document
NodeCollection comments = doc.GetChildNodes(NodeType.Comment, true);
// Look through all comments and remove those written by the authorName author.
for (int i = comments.Count - 1; i >= 0; i--)
{
Comment comment = (Comment)comments[i];
if (comment.Author == authorName)
comment.Remove();
}
}

点击复制


使用 Open XML SDK

需要添加的命名空间:


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using NUnit.Framework;

点击复制


以下代码示例展示了如何删除文档中的注释:

public void DeleteCommentsByAllOrASpecificAuthorFeature()
{
RemoveComments("");
}
private void RemoveComments(string author)
{
// Get an existing Wordprocessing document.
using (WordprocessingDocument document =
WordprocessingDocument.Open(MyDir + "Comments.docx", true))
{
WordprocessingCommentsPart commentPart =
document.MainDocumentPart.WordprocessingCommentsPart;
// If no "WordprocessingCommentsPart" exists, there can be no comments.
// Stop execution and return from the method.
if (commentPart == null)
return;
// Create a list of comments by the specified author.
// If the author name is empty, then list all authors.
List<Comment> commentsToDelete =
commentPart.Comments.Elements<Comment>().ToList();
if (!String.IsNullOrEmpty(author))
{
commentsToDelete = commentsToDelete.Where(c => c.Author == author).ToList();
}
IEnumerable<string> commentIds =
commentsToDelete.Select(r => r.Id.Value);
foreach (Comment c in commentsToDelete)
c.Remove();
// Save changes to the comments part.
commentPart.Comments.Save();
Document doc = document.MainDocumentPart.Document;
// Delete the "CommentRangeStart" for each deleted comment in the main document.
List<CommentRangeStart> commentRangeStartToDelete =
doc.Descendants<CommentRangeStart>().Where(c => commentIds.Contains(c.Id.Value)).ToList();
foreach (CommentRangeStart c in commentRangeStartToDelete)
c.Remove();
// Delete the "CommentRangeEnd" for each deleted comment in the main document.
List<CommentRangeEnd> commentRangeEndToDelete =
doc.Descendants<CommentRangeEnd>().Where(c => commentIds.Contains(c.Id.Value)).ToList();
foreach (CommentRangeEnd c in commentRangeEndToDelete)
c.Remove();
// Delete the "CommentReference" for each deleted comment in the main document.
List<CommentReference> commentRangeReferenceToDelete =
doc.Descendants<CommentReference>().Where(c => commentIds.Contains(c.Id.Value)).ToList();
foreach (CommentReference c in commentRangeReferenceToDelete)
c.Remove();
using (Stream stream = File.Open(ArtifactsDir + "Remove comments - OpenXML.docx", FileMode.CreateNew))
{
doc.Save(stream);
}
}
}

点击复制

下载此示例的示例文件。
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP