如何为comments 's InnerText添加超链接

本文关键字:InnerText 添加 超链接 comments | 更新日期: 2023-09-27 18:09:09

类似于我之前的问题,我试图添加一个超链接到当前评论的InnerText。超链接添加成功了,但是当我试图打开.docx文件时,comments.xml文件格式错误。错误出现在XML文件中创建的注释段落标记内的超链接标记处。下面的代码有问题吗?

comm.RemoveAllChildren<Paragraph>();
HyperlinkRelationship relation =
                       doc.MainDocumentPart.AddHyperlinkRelationship
                       (new Uri(url, UriKind.RelativeOrAbsolute), true);
                       String relationshipId = relation.Id;
Paragraph paragraph = new Paragraph();
Hyperlink hl = new Hyperlink(
                            new Run(new RunProperties(
                            new RunStyle()
                            {
                                Val = "Hyperlink"
                            }),
                            new Text(currentCommText)
                            ))
                            {
                                History = new DocumentFormat.OpenXml.OnOffValue(true),
                                Id = relationshipId
                            };
paragraph.Append(hl);
comm.Append(paragraph);
cdoc.Comments.Save();
doc.MainDocumentPart.Document.Save();
_________________________________________________________________________________________
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<w:comments ...>
<w:comment w:initials="d." w:author="User" w:date="2015-08-19T16:45:00Z" w:id="8">
    <w:p>
        <w:hyperlink w:history="true" r:id="R8bd7676b70ad4dad">
            <w:r>
                <w:rPr>
                    <w:rStyle w:val="Hyperlink" />
                </w:rPr>
                <w:t>Text</w:t>
            </w:r>
        </w:hyperlink>
    </w:p>
</w:comment>
...
</w:comments>

如何为comments 's InnerText添加超链接

我发现了你的问题,这是超链接的rId不好(我重新创建了一个docx文档,唯一一次我成功地重新创建你的问题是通过将rId更改为一个坏的)。

我的猜测是(我没有尝试过,但我认为它会解决问题),为注释创建超链接不能是

doc.MainDocumentPart.AddHyperlinkRelationship

,

doc.MainDocumentPart.WordprocessingCommentsPart.AddHyperlinkRelationship

编辑:文档

在https://msdn.microsoft.com/en-us/library/office/cc850832.aspx快速阅读如何在word文档中插入注释。

如果你看一下你的"。zip"文件夹,注释是在一个单独的文件(comments.xml)中。所以当你为注释创建xml代码时它引用的是WordprocessingCommentsPart那么在这部分添加超链接rid也是合乎逻辑的