为什么在 Word 中打开文档后书签 ID 发生了变化

本文关键字:书签 ID 发生了 变化 文档 Word 为什么 | 更新日期: 2023-09-27 18:31:35

我正在使用打开的 XML SDK 向 Word 文档添加书签,我还以编程方式设置书签 ID 和名称,在 Word 中打开文档后,我将文档重新打开为 WordprocessingDocument,我发现书签 id 已更改为 0,1,2 之类的值...,我想知道为什么 Word 正在修改书签 ID, 我仍然可以使用名称而不是 id 来查找书签,因为我对 id 和名称使用相同的值,但这种行为对我来说看起来很奇怪。

这是我使用的代码:

BookmarkStart bookmarkStart1 = CreateBookmarkStart(entity.Id.ToString(), entity.Id);
        BookmarkEnd bookmarkEnd1 = CreateBookmarkEnd(entity.Id);
        Paragraph paragraph1 = CreateParagraph();
        body.Append(bookmarkStart1);
        body.Append(paragraph1);
        body.Append(bookmarkEnd1);

private static BookmarkStart CreateBookmarkStart(String name, long id)
    {
        return new BookmarkStart
        {
            Name = name,
            Id = id.ToString()
        };
    }
private static BookmarkEnd CreateBookmarkEnd(long id)
    {
        return new BookmarkEnd() { Id = id.ToString() };
    }

使用的 id 是这样的值:245103 , 39045 ...

为什么在 Word 中打开文档后书签 ID 发生了变化

正如你所注意到的,你可以(并且应该)依赖书签名称,而不是ID。 像 REF 字段这样的东西使用名称,而不是 ID。

该 ID 似乎仅用于配对书签起点和终点标签。