簡體   English   中英

使用OpenXML c#在Word文檔中的選定文本中添加注釋

[英]Add Comment in to selected Text in Word Document Using OpenXML c#

我需要使用OpenXML在Word文檔中添加注釋。 我需要添加注釋到一個位置或一個單詞(或多個單詞)。 通常,在word文檔openxml中,將這些文本作為運行元素返回。 但是我要添加注釋的單詞帶有不同的運行元素。 因此,我無法在我真正想要的文檔單詞中添加注釋。 這意味着我無法添加特定的CommentRangeStartCommentRangeEnd對象。

我當前的實現如下。

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>

因此,在這種情況下,如何在文本“ is first first”中添加注釋。

或者在某些情況下,openxml文檔包含以下run元素。

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

因此,在這兩種情況下,如何在我的特定單詞選擇中添加注釋。 我在這里添加了一個截圖,正​​是我想要的。

屏幕截圖在這里。

如果樣式沒有變化,並且允許您操作文檔,則可以輕松地將所有運行合並到一個段落中,然后隔離文本運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM