0

我有带有标题书签的 XPS 文件。如果您在 Word 中打开源文档并转到查看-> 文档图,您会看到左侧的所有书签。是否有可能在 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 之类的结尾。我可以从书签标题中获得那个 Uri 吗?

4

2 回答 2

0

对于那些想知道的人,XPS 文档只是 Z​​IP 文件。提取 zip 并解析 XML 文件 \Documents\1\DocStructure.Struct 以获取大纲条目。

于 2010-08-05T04:25:30.063 回答
0

看一眼:

如何在指定的书签中打开 XPS

最后一个答案中的“GetBookmarks”方法从 XPS 文件中提取书签。方法“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"
于 2016-08-09T12:07:42.923 回答