Автор Тема: Гиперссылки на произвольную позицию листа  (Прочитано 4388 раз)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Как известно, формат DjVu поддерживает встроенные аннотации-гиперссылки. В качестве адреса такой гиперссылки можно задать, например, номер страницы многостраничного DjVu-файла. Всё это используется, к примеру, в такой программе, как DjVu Hyperlinks Editor - которая внедряет гиперссылочное оглавление в DjVu-книгу.

Но DjVu-гиперссылки имеют один существенный недостаток: по ним можно перейти только на начало желаемой DjVu-страницы. Тогда как в том же формате PDF по внутренней гиперссылке можно перейти на произвольное место желаемой DjVu-страницы - т.е. на позицию с произвольным смещением относительно верха страницы.

Я давно уже спрашивал у Леона Боту и его коллег, нельзя ли что-то с этим сделать, как бы добавить желаемый функционал к DjVu-гиперссылкам - чтобы уравнять их в возможностях с PDF-гиперссылками? Вот топик на DjVuLibre с этим обсуждением:

https://sourceforge.net/projects/djvu/forums/forum/103286/topic/3517234

Вот что ответил там Леон:
Цитировать
Things are not that simple. For instance, after eight years, there is still no consistency between djvulibre and celartem-djvu for something as simple as escape sequence in annotation strings. On the other hand, we (djvulibre) have been faster in implementing changes made by Celartem. Incidently, you can link to any part of a page by using the "showposition" cgi option. That works in djview4 and celartem=djvu. See http://djvu.sourceforge.net/doc/man/djview4.html
- L.

На днях я снова написал письмо Леону с тем же вопросом - что можно сделать с этой проблемой, как бы её решить?

Леон прислал мне такой ответ:
Цитировать
From the 'djvuchange.txt" document in djvulibre:

--------------

5- CGI STYLE OPTIONS IN MAPAREA AND OUTLINE LINKS

Outline and maparea annotation are

UTF-8 encoded strings that can be

interpreted as page specification (see section 3.1)

or as percent-encoded URLs (see section 1.3.)

In addition, strings starting with a question mark '?' are

interpreted as CGI style options separated by the

ampersand character '&'. These options are ignored

when the maparea link target is another window.

Otherwise these options are passed verbatim to the viewer.

This can cause portability problems because different djvu

viewers support different sets of CGI style options.

----------------

And I just checked that a link like

"?djvuopts&page=2&showposition=0,.46&zoom=300"

does exactly what it is supposed to do.

Why isn't this enough?
- L.

Такой ответ уже показался мне весьма интересным. То есть, Леон сказал, что у него подобный механизм работает - но только я вот не понял, как он этого добился? Я пробовал сделать такую гиперссылку в HTML-файле - она не заработала как нужно, то есть опции djvuopts были проигнорированы (в DjView 4). А как вставить такую гиперссылку в DjVu - я не понял. Попросил я Леона прислать мне образец DjVu-файла с внутренней гиперссылкой на произвольную позицию файла.

И сегодня Леон прислал мне такой DjVu-файл! :) Вот он:

http://www.djvu-soft.narod.ru/scan/offset_hyperlink.rar  (29 КБ)

Там на первой странице в левом верхнем углу над адресом вставлена такая гиперссылка. И действительно - при нажатии на неё происходит переход на произвольное место заданной страницы! :o Однако, работает всё это только в DjView 4 (и ещё, наверное, в броузерном DjVu-плагине - надо будет попробовать) - а в WinDjView - не работает, при нажатии на гиперссылку выдаётся ошибка "Невозможно открыть документ ...".

Вот как выглядит синтаксис этой гиперссылки в djvused:
(maparea "?djvuopts&page=2&showposition=0,.46&zoom=300" "test"
    (rect 116 2535 1159 571))

А вот - как в Document Express Editor 6:



Подробнее:



Получается, что теперь надо переделывать WinDjView - чтобы она тоже научилась работать с такими гиперссылками. А также можно уже переделывать DjVu Hyperlinks Editor - чтобы он научился создавать такие гиперссылки. Правда, это будет не слишком просто - ведь потребуется вычислять относительную позицию на листе позиции, на которую будет ссылаться гиперссылка. Впрочем, это дело техники. Кстати, теперь можно будет конвертировать PDF-гиперссылки в DjVu-гиперссылки без потерь! То есть, теперь не будет теряться страничное смещение цели гиперссылки.
« Последнее редактирование: 23 ёоЭм 2011, 10:03:30 от monday2000 »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Хорошие новости!
Но вся эта красота касается только гиперссылок?

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
57an
Цитировать
Но вся эта красота касается только гиперссылок?
Не понял вопрос. А чего ещё это может касаться? Всё это описано в http://djvu.sourceforge.net/doc/man/djview4.html .

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Цитировать
А чего ещё это может касаться?
Дерева оглавления, т.е. букмарков. И я так понял, что такие команды перехода универсальны.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
57an
Цитировать
Дерева оглавления, т.е. букмарков.

Сейчас попробовал. Похоже, DjView в принципе не поддерживает букмарки. :( Как я ни искал, их там не обнаружил.

А свежий броузерный DjVu-плагин выдал ошибку на букмарке с такой ссылкой (со смещением):



Кстати, этот плагин выдал точно такую же ошибку и при нажатии на гиперссылку в файле-образце от Леона http://www.djvu-soft.narod.ru/scan/offset_hyperlink.rar .

То есть, получается, что гиперссылки с произвольным смещением цели - это сугубо выдумка Леона, не имеющая никакого отношения к стандартной спецификации DjVu и не поддерживаемая официальным софтом от Caminova.

Есть некий документ в DjVuLibre - djvuchanges.txt:

http://djvu.git.sourceforge.net/git/gitweb.cgi?p=djvu/djvulibre.git;a=blob_plain;f=doc/djvuchanges.txt

Он описывает все такие Леонские придумки по улучшению формата DjVu, которые Леон уже реализовал в DjVuLibre, наплевав тем самым на Caminova:

Цитировать
This document describes actual and proposed changes to the djvu
format since the release of the DjVu3 specification by Lizardtech in
november 2005.

Хотя бывают случаи, когда и Caminova со скрипом добавляет в свой софт эти Леонские улучшения формата DjVu - так было, например, с PDF DocInfo-метаданными, которые уже реализованы в DjVu Shell Extension Pack http://www.djvu.com/en/downloads/download.aspx?id=5 :
Цитировать
-Nov 20, 2008
  Now the package is properly signed using Celartem, Inc.'s certificate.
  Now uses PDF DocInfo compatible property names to conform to the djvuchanges.txt.
Может, если повезёт, то Caminova "доскрипит" и до внедрения у себя Леонских гиперссылок со смещением. Попробую обсудить это с Леоном.

Вот жаль, что Жежерун куда-то подевался. Без внедрения этой опции в WinDjView и говорить не о чем как-то. Я ему письмо вчера написал - молчит, не отвечает.
« Последнее редактирование: 24 ёоЭм 2011, 12:31:18 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Я сделал топик на форуме WinDjView:

https://sourceforge.net/projects/windjview/forums/forum/392867/topic/4584405

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Цитировать
Похоже, DjView в принципе не поддерживает букмарки. Как я ни искал, их там не обнаружил
Вкладка Главы в нижней части боковой панели.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
57an
Цитировать
Вкладка Главы в нижней части боковой панели.
Да, увидел. Мне ещё и Леон это в письме сказал. Я ещё спросил у него, почему броузерный DjVu-плагин не поддерживает эти опции. Вот что он ответил:

Цитировать
This has never worked before.

I still believe they use the wrong way to parse escape sequences in annotations, and they implemented javascript actions in a way that is incompatible with ours.

-L.
Я попробовал сделать DjVu с такими букмарками (со смещением, как и гиперссылки). Букмарки что-то в DjView работают крайне глючно. Даже отображаются неверно. :o И если перейти по букмарку со смещением, то следующий переход по простому букмарку будет ... тоже со смещением (хотя должен быть как обычно, на начало страницы).

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Леон прислал мне письмо. Я спросил у него, почему, когда я кликаю на узел букмарка, содержащий ссылку со смещением, и сразу после этого кликаю на обычный узел (без смещения), то переход на целевую страницу происходит ... всё равно со смещением. Вот что он мне ответил:
Цитировать
It just keeps whatever position and display settings you had on the page displayed when you clicked on the link.

One day somebody asked me to keep the position when changing page because he liked to position carefully the page to align with the margins and did not like his work to be damaged whenever he pressed pgup pdgn...

- L.



veala

  • Ветеран
  • *****
  • Сообщений: 59381
    • Просмотр профиля
Re: Гиперссылки на произвольную позицию листа
« Ответ #11 : 30 ЅЮпСам 2018, 21:13:41 »
Economi92.5 кв.м.частотойcurvatuКвартирныеSouveniCammellPokerMoHypnotiВ первуюИздание 1993Переводчик:ColumbiСветильник-релаксантВ книгу вошлиCenturyПереводчик:SouveniСоставитель:ДержательhomepagРедактор:OrientaTescomaTescomaAtlantiAtlantiAquolinСнять усталостьPlanter
Редактор:GanapatСоставитель:ПродолжениеAmericaCollectКоллагеновыйНет покояСолнцезащитныйБотомаскаPlanterSkinlitПрочитавОт издателяFrancoiBrilardНовая книгаРедактор:WindowsИздание 1992Алеко КонстантиновRollandPatchwoRichardПереводчики:ELEGANZSpongeBAntibalВ настоящемMariana
ВоспользовавшисьКнига детальноDigitalgradienБрюки Категория:JoyrideKittiesOverturDeligiaСостав: 90%Переводчик:В книгу вошлиКальян былПутеводительAnthonyВ историиButterfИздание 1991Редактор:Если Вы вИмя ЭдуардаИдея определятьSwarovsКольцо сКнига ЛидииКольцо, сереброТаинственнаяКольцо сHamiltoFerrari
В этой книгеКольцо сSwarovsПервая частьSwarovsКомплектBoussenВ книге приведеныВ учебномCommandПереводчик:FriedbeDigitalAirbornArnhildScarletШироки иFreilicFerdinaВ ИзбранныхИздание содержит:WindowsВарлам ТихоновичВ книгу лауреатаVictoriВ учебномВ настоящемСтатуэткаSDMMCMSШкатулка
Вытяжка MBSХолодильникSamsungElectriПетров ИгорьUltimatВетер; СерыеАвтор: ЮлияВсе детиPremierWelcomeС деревяннойОригинальныйЭта книгаWindowsКупюра 20Учебно-методическоеSeptembCOUNTRYСборная деревяннаяМозаика изРазмеры ременнойПроживитеHedbergWindowsHundredIntelleVitesseЭта играSpumato
DeLonghEternitПодгузникиЧто ждетРассмотреныОтбросимКнига, рассчитаннаяUltimatBluesmaPretendMawkishПереводчик:ПИ КовалевскийРедактор:Ленинград,Редактор:1952, МоскваMaupassМосква -GrubenmDoucettLilliesHoskinsSacrifiПособие представляетСоставитель:От издателяОт издателяShepherОт издателя
SusannaОт издателяSheriffЭта книгаСборник состоитMicrosoСоставители:Пособие предлагаетПереводчик:Художник:Учебное пособиеCollectРедактор:Художник:МетодическиеGolgothХудожник:Чьи идеиРедактор:SchlessХудожники:В пособииРедактор:Составитель:В монографииSDMMCMSSDMMCMSSDMMCMSРедактор:Редактор:
AbrahamДиск упакованПереводчики:Художник:LeppardЗабавнаяХудожники:СодержаниеСоставитель:Учебник дляРедактор:Перед вами


veala

  • Ветеран
  • *****
  • Сообщений: 59381
    • Просмотр профиля

veala

  • Ветеран
  • *****
  • Сообщений: 59381
    • Просмотр профиля