2016-07-07 7 views
0

Word文書にコメントを追加するには、OpenXMLを使用する必要があります。場所や単語(または複数の単語)にコメントを追加する必要があります。通常、文書のopenxmlは、それらのテキストを実行要素として返します。しかし、私がコメントを追加したかった言葉は、さまざまなラン要素で来ています。だから私は実際に欲しかった文書の言葉にコメントをつけることができませんでした。つまり、特定のCommentRangeStartCommentRangeEndオブジェクトを追加できませんでした。OpenXMLを使用してWord文書の選択したテキストにコメントを追加するC#

私の現在の実装は以下の通りです。

foreach (var paragraph in document.MainDocumentPart.Document.Descendants<DocumentFormat.OpenXml.Wordprocessing.Paragraph>()) 
{ 
    foreach (var run in paragraph.Elements<Run>()) 
    { 
     var item = run.Elements<Text>().FirstOrDefault(b => b.Text.Trim() == "My words selection to add comment"); 
     if (item != null) 
     { 
      run.InsertBefore(new CommentRangeStart() { Id = id }, item); 
      var cmtEnd = run.InsertAfter(new CommentRangeEnd() { Id = id }, item); 
      run.InsertAfter(new Run(new CommentReference() { Id = id }), cmtEnd); 
     } 
    } 
} 

詳細..

<w:r><w:t>This </w:t></w:r> 

<w:r><w:t>is </w:t></w:r> 

<w:r><w:t>a first paragraph</w:t></w:r> 

は、だから私は、テキストの中にコメントを追加することができるか、その場合の「最初のパラです」。

また、場合によっては、openxmlドキュメントに以下のような実行要素が含まれています。

<w:r><w:t>This is a first paragraph</w:t></w:r> 

言葉の私の特定の選択にしてコメントを追加するにはどのようにこれらの例だから、両方。私はちょうど私が欲しいものをここにスクリーンショットを追加しました。スタイルが異なっていない場合は、ドキュメントを操作することが許可されている場合

screenshot here..

答えて

0

、そして、あなたは簡単に段落ですべてのランをマージし、テキストランを分離することができます。

関連する問題