我有带头书签的xps文件。如果在Word中打开源文档并转到查看 - >文档地图,则会在左侧查看所有书签。是否有可能在DocumentViewer中获取相同的功能,例如您将在某种PDF阅读器中使用PDF文档?

此外,RequestNaviateEventHandler显示XPS文档中的每个超链接/书签都有一个特定的URI,它是“C:\ my Path \ to \ file.xps#pg_n_lnk_x”,其中x是链接的唯一号码n是页码。我想弄清楚通过标题来称之为书签的方法。例如,如果我有一个名为“主屏幕”的部分,那么在XPS文件的第8页,那个书签的URI将结束类似#pg_8_lnk_3的东西。我是否可以从书签标题中获得那个URI?

有帮助吗?

解决方案

对于那些想知道,XPS文档只是ZIP文件。提取zip并解析xml文件\ documents \ 1 \ docstructure.struct for轮廓条目。

其他提示

看看:

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

最后一个答案中的方法“getbookmarks”从XPS文件中提取书签。该方法“gotobookmarkelement”导航到书签。

可以通过设置Frame.source属性来完成更快的方式来导航到书签的方法:

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

URI构造函数的输入字符串,如:

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

位于:

中的文件
"C:\\temp\\Help\\Manual.xps"
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top