Как вы ищете определенный текст внутри текстового прогона (в Docx с использованием OpenXML SDK 2.0) и как вы его найдете, как вставить комментарий, окружающий «текст поиска». «Текст поиска» может быть подстрокой существующего прогона. Все примеры в примерах вставляют комментарии вокруг первого абзаца или что-то в этом роде ... не то, что я ищу.
Спасибо





Вы должны разбить его на отдельные серии. Попробуйте использовать DocumentReflector - он даже генерирует код C# - чтобы просмотреть документ, созданный с помощью word. Структура должна выглядеть примерно так (упрощенно):
<paragraph>
<run>...</run>
<commentRangeStart />
<run>search text</run>
<commentRangeEnd />
<run>...</run>
</paragraph>
Для тех, кто все еще ищет ответ:
Здесь - это код для этого:
private void AddComment( Paragraph paragraph, string text )
{
string commentId = GetNextCommentId();
Comment comment = new Comment() { Id= commentId, Date = DateTime.Now };
Paragraph commentPara = new Paragraph( new Run( new Text( GetCommentsString( text ) ) ) { RunProperties = new RunProperties( new RunStyle() { Val = "CommentReference" } ) } );
commentPara.ParagraphProperties = new ParagraphProperties( new ParagraphStyleId() { Val = "CommentText" } );
comment.AppendChild( commentPara );
_comments.AppendChild( comment );//Comments object
_comments.Save();
paragraph.InsertBefore( new CommentRangeStart() { Id = commentId }, paragraph.GetFirstChild<Run>() );
var commentEnd = paragraph.InsertAfter( new CommentRangeEnd() { Id = commentId }, paragraph.Elements<Run>().Last() );
paragraph.InsertAfter( new Run( new CommentReference() { Id = commentId } ), commentEnd );
}