2010-07-20 54 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"