DocumentMap / Содержание для DocumentViewer и вызова гиперссылки по имени или номеру ссылки для документов XPS
-
18-09-2020 - |
Вопрос
У меня есть файлы XPS с закладки заголовка.Если вы открываете исходный документ в Word и перейдите к просмотру-> Карта документов, вы видите все закладки слева.Можно ли получить эту же функциональность в DocumentViewer, как будто вы получите с документом PDF в каком-то читателе PDF?
Кроме того, запроснавистеВЕНДДНЕРАЙЛЕР показывает, что каждая гиперссылка / закладка в документе XPS имеет определенный URI, который является чем-то вроде «C: \ my path \ to \ file.xps # pg_n_lnk_x», где X - это уникальный номер для ссылки иN - номер страницы.Я хотел бы понять способ назвать закладку по его заголовке.Например, если бы у меня был раздел под названием «Главный экран», который был на странице 8 файла XPS, URI для этой закладки закончится что-то вроде # PG_8_LNK_3.Можно ли мне получить этот URI из заголовка закладок?
Решение
Для тех, кто задается вопросом, документы XPS просто zip-файлы.Извлеките ZIP и анализировать XML-файл \ Documents \ 1 \ DocStructure.struct для наброски.
Другие советы
Посмотрите:
Метод «GetBookmarks» в последнем ответе извлекает закладки из XPS-файла.Метод «Gotobookmarkelement» навигации на закладки.
Быстрее способ навигации к закладке можно сделать, установив свойство кадра. Насудите имущество:
DocFrame.Source = new Uri(string.Format("pack://file:,,,{0}/FixedDocSeq.fdseq#{1}", _filePath.Replace('\\', ','), bookmark.Name));
.
Входная строка для УРИ-конструктора выглядит как:
"pack://file:,,,C:,temp,Help,Manual.xps/FixedDocSeq.fdseq#PG_6_LNK_380"
.
для файла, который находится в:
"C:\\temp\\Help\\Manual.xps"
.