Автор Тема: Консольное создание DjVu-оглавления  (Прочитано 4662 раз)

Eugeen1948

  • Пользователь
  • **
  • Сообщений: 59
    • Просмотр профиля
    • E-mail
Re: Консольное создание DjVu-оглавления
« Ответ #15 : 15 ёоЭм 2011, 23:29:33 »
Я сделал консольную утилиту для облегчения создания DjVu-букмарков. Назвал её "bookm".
Раньше я пользовался для вставки DjVu-букмарков китайской утилитой PdgCntEditor. Но в последний раз она что-то не поняла кодировки моего файла. Пришлось делать свою утилиту.
Я постоянно решаю проблему переноса букмарков из  PDF  в   DJVU. Утилита PdgCntEditor вполне справляется, если только букмарки в простом виде:
"название" - tab- "Число".
Если "число" отрицательное, то есть механизм сдвига за несколько шагов.
Но если если вместо числа стоит некое буквенно-цифровое выражение, то PdgCntEditor уже бесполезна. А это бывает очень часто, и я не понимаю как это происходит в PDF-файле, откуда получаются такие букмарки и как их привести в "каноническую" форму?
Решается ли у Вас эта проблема?

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Консольное создание DjVu-оглавления
« Ответ #16 : 16 ёоЭм 2011, 07:40:08 »
В pdf букмарках указана еще и позиция заголовка на листе.
Такие букмарки перенести в djvu с потерей позиции на листе можно через HandyOutline или Pdf & Djvu Bookmarker 3.0 (но он пока в бета-статусе). Обе требуют .NET фреймворка.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Консольное создание DjVu-оглавления
« Ответ #17 : 22 ёоЭм 2011, 16:43:01 »
57an
Цитировать
В pdf букмарках указана еще и позиция заголовка на листе.
Кстати, я когда-то поднимал эту проблему (отсутствие в DjVu позиции листа в гиперссылках) перед Леоном Боту - вот:

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

m7876

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Консольное создание DjVu-оглавления
« Ответ #18 : 23 ёоЭм 2011, 05:46:04 »
Жаль. Получается, что я не смогу пользоваться этой программой на Linux.
Ну, не все так плохо. Я написал свою версию скрипта на AWK, который выполняет туже функциональность.
Правда, я точно не знаю формат выходного файла, поэтому делал по аналогии. Как мне кажется, должно работать.
Попробуйте: http://pastebin.com/VsPQGFjp
Попробовал. Увы, работает неправильно. При обработке образца, приложенного к оригинальному bookm.exe, выдает следующее:

(bookmarks
 ("Line1" "#1"
  ("Line2" "#2"
  )
  ("Line3" "#3"
  )
  ("Line4" "#4"
   ("Line5" "#5"
   )
   ("Line6" "#6"
   )
   ("Line7" "#7"
   )
 ("Line8" "#8"
 )
 ("Line9" "#9"
 )
)

Тогда как правильный вариант (проверил под виртуальными виндами):

(bookmarks
("Line1" "#1"
 ("Line2" "#2"
  )
 ("Line3" "#3"
  )
 ("Line4" "#4"
  ("Line5" "#5"
  )
  ("Line6" "#6"
  )
  ("Line7" "#7"
  )
  )
  )
("Line8" "#8"
  )
("Line9" "#9"
  )
  )

===
Кстати говоря, не мешало бы в инструкцию к оригинальному bookm.exe добавить, как потом вставлять оглавление (типа "djvused input.djvu -e 'set-outline bookm_output' -s").

nbl

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Консольное создание DjVu-оглавления
« Ответ #19 : 27 ёоЭм 2011, 21:40:36 »
Поправил: http://pastebin.com/VsPQGFjp

Теперь на выходе вот это:
(bookmarks
 ("Line1" "#1"
  ("Line2" "#2"
  )
  ("Line3" "#3"
  )
  ("Line4" "#4"
   ("Line5" "#5"
   )
   ("Line6" "#6"
   )
   ("Line7" "#7"
   )
  )
 )
 ("Line8" "#8"
 )
 ("Line9" "#9"
 )
)
« Последнее редактирование: 27 ёоЭм 2011, 21:42:13 от nbl »