DocumentMap / documentViewer的目录,并通过名称或链接号调用XPS文档的链接号
-
18-09-2020 - |
题
我有带头书签的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轮廓条目。
其他提示
看看:
最后一个答案中的方法“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"
. 不隶属于 StackOverflow