DocumentMap / Оглавление для DocumentViewer и вызов гиперссылки по имени или номеру ссылки для документов XPS - PullRequest
0 голосов
/ 20 июля 2010

У меня есть файлы XPS с закладками заголовка.Если вы откроете исходный документ в Word и перейдете в View-> Document Map, вы увидите все закладки слева.Возможно ли получить такую ​​же функциональность в DocumentViewer, как если бы вы получали документ PDF в каком-либо приложении для чтения PDF?

Кроме того, RequestNavigateEventHandler показывает, что каждая гиперссылка / закладка в документе XPS имеет определенный Uri, который имеет вид «C: \ my path \ to \ file.xps # PG_N_LNK_X», где X - уникальный номер дляссылка и N это номер страницы.Я хотел бы найти способ назвать закладку по ее заголовку.Например, если бы у меня был раздел под названием «Главный экран», который был на странице 8 файла XPS, Uri для этой закладки закончился бы чем-то вроде # PG_8_LNK_3.Могу ли я получить этот Ури из заголовка закладки?

Ответы [ 2 ]

0 голосов
/ 09 августа 2016

Взгляните на:

Как открыть 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"
0 голосов
/ 05 августа 2010

Для тех, кому интересно, документы XPS - это просто ZIP-файлы. Извлеките zip и проанализируйте файл XML \ Documents \ 1 \ DocStructure.Struct для записей схемы.

...