2010-07-20 52 views
-1

我有带头书签的XPS文件。如果您在Word中打开源文档并转到查看 - >文档地图,则会看到左侧的所有书签。是否有可能在DocumentViewer中获得相同的功能,就像在某种PDF阅读器中使用PDF文档一样?DocumentViewer的DocumentMap /目录,并通过名称或链接号为XPS文档调用超链接

此外,RequestNavigateEventHandler显示XPS文档中的每个超链接/书签都有一个特定的Uri,类似于“C:\ my path \ to \ file.xps#PG_N_LNK_X”,其中X是链接的唯一编号N是页码。我想找出一种通过标题调用书签的方法。例如,如果我在XPS文件的第8页上有一个名为“主屏幕”的部分,则该书签的Uri将以#PG_8_LNK_3结尾。我有可能从书签标题中获得该Uri吗?

回答

0

对于那些想知道的,XPS文档只是ZIP文件。提取zip并解析XML文件\ Documents \ 1 \ DocStructure.Struct作为大纲条目。

0

在看看:

How to open a XPS in a specified bookmarks

在最后答案的方法 “GetBookmarks” 提取从XPS-文件的书签。方法“GotoBookmarkElement”导航到书签。

DocFrame.Source = new Uri(string.Format("pack://file:,,,{0}/FixedDocSeq.fdseq#{1}", _filePath.Replace('\\', ','), bookmark.Name)); 

的URI的构造函数输入字符串look's像:

导航到书签更快的方式可以通过设置Frame.Source财产进行

"pack://file:,,,C:,temp,Help,Manual.xps/FixedDocSeq.fdseq#PG_6_LNK_380" 

对于自己的文件创建时间:

"C:\\temp\\Help\\Manual.xps"