首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Word/OpenXML -如何创建隐藏的书签?

Word/OpenXML -如何创建隐藏的书签?
EN

Stack Overflow用户
提问于 2011-03-30 13:33:48
回答 2查看 5.5K关注 0票数 7

无论是在OpenXML API还是Word/VSTO中,我都没有找到一种方法来创建或修改书签的可见性。即使在Word中手动添加书签,也没有需要检查的框来隐藏书签。尽管在“书签”对话框中有一个复选框,但是可以显示隐藏的书签。那么隐藏书签是如何在XML中表示的,您可以使用Open创建它们吗?或者它们是MS不再希望我们创造的遗产?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-30 13:48:40

好的,这比我要简单得多,thought...you在书签名前面加上下划线。请注意,这只能以编程的方式进行,而不是在Word中手动添加书签时。

很有趣..。

更新:我发现的另一件事--在您可以迭代或访问书签对象中的隐藏书签之前,必须将它的ShowHidden属性设置为true。

因此,如果您对拼写字典有任何控制,您可以添加“编程方式”。除非我拼错了。:)

票数 15
EN

Stack Overflow用户

发布于 2013-05-30 16:40:39

我在word文件中创建了普通书签,而不是以编程方式将它们转换为隐藏书签。如前所述,隐藏书签只能以编程方式创建,其名称在"_“之前。当迭代书签列表时,请确保Bookmarks.ShowHidden设置为true,否则隐藏书签将不会出现在列表中。下面是我用来隐藏所有可见书签的代码。最后,我还清除了撤消记录,以确保用户不能撤消我所做的更改。如果愿意,可以创建自定义撤消记录,删除最后一个操作。

代码语言:javascript
运行
复制
public static void hideAllBookmark(Document doc)
{
    String newName = null;
    Range newRange = null;
    bool backup = doc.Bookmarks.ShowHidden;
    doc.Bookmarks.ShowHidden = false;
            
    for (int i = doc.Bookmarks.Count; i > 0; i--)
    {
        if (!doc.Bookmarks[i].Name.Substring(0, 1).Equals("_", StringComparison.OrdinalIgnoreCase))
        {
            newName= "_" + doc.Bookmarks[i].Name;
            newRange = doc.Bookmarks[i].Range;
            doc.Bookmarks[i].Delete();
            doc.Bookmarks.Add(newName, newRange);
        }
    }
    doc.Bookmarks.ShowHidden = backup;
    doc.UndoClear();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5487022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档