DocumentMap / DocumentViewerの目次/目次、およびXPS文書の名前またはリンク番号でハイパーリンクを呼び出す

StackOverflow https://stackoverflow.com/questions/3293856

質問

ヘッダーブックマークを持つXPSファイルを持っています。Wordでソースドキュメントを開いて表示 - >ドキュメントマップに移動すると、左側のブックマークがすべて表示されます。DocumentViewerでこの同じ機能を取得することは、PDF文書をある種のPDFリーダーで取得することができますか?

また、RequestNavigateEventHandlerは、XPSドキュメントの各ハイパーリンク/ブックマークに、「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を解析します。

他のヒント

見てみる:

指定されたブックマークでXPSを開く方法

最後の回答のメソッド "GetBookmarks"は、XPSファイルからブックマークを抽出します。メソッド "GotoBookmarklement"はブックマークに移動します。

ブックマークに移動する手間を短くすると、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