我有带标题书签的XPS文件。如果在Word中打开源文档并转到view-> Document Map,则会在左侧看到所有书签。是否可以在DocumentViewer中获得相同的功能,就像在某种PDF阅读器中获得PDF文档一样?
此外,RequestNavigateEventHandler显示XPS文档中的每个超链接/书签都有一个特定的Uri,类似于“C:\ my path \ to \ file.xps#PG_N_LNK_X”,其中X是链接的唯一编号, N是页码。我想找出一种通过标题调用书签的方法。例如,如果我在XPS文件的第8页上有一个名为“主屏幕”的部分,则该书签的Uri将结束类似#PG_8_LNK_3的内容。我可以从Bookmark Heading获得Uri吗?
答案 0 :(得分:0)
对于那些想知道的人来说,XPS文档只是简单的ZIP文件。解压缩zip并解析大纲条目的XML文件\ Documents \ 1 \ DocStructure.Struct。
答案 1 :(得分:0)
看看:
How to open a XPS in a specified bookmarks
最后一个答案中的“GetBookmarks”方法从XPS-File中提取书签。方法“GotoBookmarkElement”导航到书签。
可以通过设置Frame.Source属性来快速导航到书签:
DocFrame.Source = new Uri(string.Format("pack://file:,,,{0}/FixedDocSeq.fdseq#{1}", _filePath.Replace('\\', ','), bookmark.Name));
Uri-Constructor的输入字符串如下:
"pack://file:,,,C:,temp,Help,Manual.xps/FixedDocSeq.fdseq#PG_6_LNK_380"
对于位于以下位置的文件:
"C:\\temp\\Help\\Manual.xps"