Автор Тема: Создание оглавления в djvu  (Прочитано 53935 раз)

Vadik789

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
    • E-mail
Создание оглавления в djvu
« : 07 ПЭТРам 2010, 14:19:57 »
Написал программу для создания оглавления в djvu.
djvuoutline 1.1 (389 КБ)

Пишите, пожалуйста, в эту тему об ошибках, что нужно улучшить, и так далее.
« Последнее редактирование: 26 јРав 2010, 12:06:48 от Vadik789 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Создание оглавления в djvu
« Ответ #1 : 07 ПЭТРам 2010, 17:33:37 »
Vadik789
Добро пожаловать!

В течение 1-2 дней изучу Вашу программу, отпишусь сюда.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Создание оглавления в djvu
« Ответ #2 : 07 ПЭТРам 2010, 19:48:43 »
Vadik789
Пока не получается результат от Вашей программы. Я использую пример из инструкции:
Цитировать
1 Introduction■1
2 Document Organization■2
Беру 3-страничный DjVu-файл для примера, загружаю его в программу, ввожу в поле программы эти 2 пункта, нажимаю Save, закрываю программу - и ничего, дерево-оглавление отсутствует в обработанном DjVu-файле. У меня Win XP SP2.

Ещё момент: почему-то окно программы не сворачивается само при переключении на другое окно - его приходится вручную сворачивать.

Vadik789

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
    • E-mail
Re: Создание оглавления в djvu
« Ответ #3 : 07 ПЭТРам 2010, 20:36:15 »
А какой программой просматриваете? Если в ВинДжвю, то слева сразу появляется панель с оглавлением, а если в браузерном плагине от Лизард Тек - то там оно не показывается, нужно щелкнуть правой кнопкой мыши, выбрать Navigation Pane -> Outline.

Программа остается поверх - так сделано специально для удобства, чтоб можно было параллельно открыть редактируемую книгу в просмотрщике и пролистать ее. Или переписать оглавление с последней странице.
« Последнее редактирование: 07 ПЭТРам 2010, 20:40:46 от Vadik789 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Создание оглавления в djvu
« Ответ #4 : 07 ПЭТРам 2010, 21:32:19 »
Vadik789
Цитировать
Если в ВинДжвю, то слева сразу появляется панель с оглавлением
Да, в WinDjView. Но никакой панели слева не появляется. Я хорошо знаю эту панель. Подозреваю, что это какой-то глюк. Давайте как-то будем его искать. Пришлите мне, что ли, какую-то отладочную версию на e-mail - чтобы она выдавала сообщения отладочной печати на каждом этапе работы - тогда мы увидим, где она не срабатывает.
Цитировать
Программа остается поверх - так сделано специально для удобства
А можно это сделать опционально (т.е. по выбору пользователя)? ИМХО весьма желательно. А то даже хелп читать неудобно. Кстати - хелп у меня на экране не влезает по ширине без прокрутки - неудобно. Может, сделаете хелп в HTML?

Есть ещё старая задумка: нет ли у Вас возможности сделать в этой программе рабочее окно (куда вводится схема оглавления) в виде не текстового поля - а электронной таблицы "а-ля Excel"? И, чтобы можно было ячейки мышкой перетаскивать - как в настоящем Excel (вставить-удалить столбец также). Это было бы здорово - всё удобней, чем просто табами и чёрными квадратиками задавать оглавление. Насколько это трудно сделать - такой "электронно-табличный" элемент управления? Пусть хотя бы размером 256х256 ячеек.

И ещё было бы здорово "вытаскивать" с заданных страниц (где оглавление) многостраничного DjVu-файла OCR-слой - и уже потом "распределять" его по ячейкам такой "электронной таблицы" - с тем, чтобы такой "полуфабрикат" оставалось лишь чуть подредактировать руками (путём быстрой ручной "перетасовки" ячеек в нужную древообразную структуру и правки их содержимого) - и получить готовую заготовку на будущее дерево.

Vadik789

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
    • E-mail
Re: Создание оглавления в djvu
« Ответ #5 : 07 ПЭТРам 2010, 21:52:16 »
Да, в WinDjView. Но никакой панели слева не появляется. Я хорошо знаю эту панель. Подозреваю, что это какой-то глюк. Давайте как-то будем его искать. Пришлите мне, что ли, какую-то отладочную версию на e-mail - чтобы она выдавала сообщения отладочной печати на каждом этапе работы - тогда мы увидим, где она не срабатывает.
Хорошо, сейчас вышлю. Прежде чем выкладывать, проверял и у других людей, вроде все работает.

Цитировать
А можно это сделать опционально (т.е. по выбору пользователя)? ИМХО весьма желательно. А то даже хелп читать неудобно.
Сделаю.

Цитировать
Кстати - хелп у меня на экране не влезает по ширине без прокрутки - неудобно. Может, сделаете хелп в HTML?
Сделаю.

Цитировать
Есть ещё старая задумка: нет ли у Вас возможности сделать в этой программе рабочее окно (куда вводится схема оглавления) в виде не текстового поля - а электронной таблицы "а-ля Excel"? И, чтобы можно было ячейки мышкой перетаскивать - как в настоящем Excel (вставить-удалить столбец также). Это было бы здорово - всё удобней, чем просто табами и чёрными квадратиками задавать оглавление. Насколько это трудно сделать - такой "электронно-табличный" элемент управления? Пусть хотя бы размером 256х256 ячеек.
А как при этом будет показываться дерево оглавления, уровни вложенности? По-моему, таблицу с деревом совместить просто невозможно.

И ещё было бы здорово "вытаскивать" с заданных страниц (где оглавление) многостраничного DjVu-файла OCR-слой - и уже потом "распределять" его по ячейкам такой "электронной таблицы" - с тем, чтобы такой "полуфабрикат" оставалось лишь чуть подредактировать руками (путём быстрой ручной "перетасовки" ячеек в нужную древообразную структуру и правки их содержимого) - и получить готовую заготовку на будущее дерево.
Была такая идея. Это реализовать легко, но привело бы к куче ошибок в оглавлении, если все так будут делать. Если же делать аккуратно, то пока вычитаешь внимательно, нет ли ошибок, - проще уж набрать, по-моему.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Создание оглавления в djvu
« Ответ #6 : 07 ПЭТРам 2010, 22:14:38 »
Vadik789
Цитировать
А как при этом будет показываться дерево оглавления, уровни вложенности?
Вместо табов - ячейки. Нагляднее, верно? Возможны и другие тонкости: допустим, ячейки разных условных цветов - это ещё бы повысило наглядность.
Цитировать
Если же делать аккуратно, то пока вычитаешь внимательно, нет ли ошибок, - проще уж набрать, по-моему.
Если скан был хорошего качества, то и OCR-слой будет с малым количеством ошибок. Ведь бывают книги с охрененно большими и разветвлёнными оглавлениями - вбивать всё вручную на 100% - ИМХО тяжко.

В общем, как опция это могло бы быть. Естественно, это требует полной ручной вычитки и правки при необходимости.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Создание оглавления в djvu
« Ответ #7 : 07 ПЭТРам 2010, 23:08:06 »
По поводу djvused:

Дело в том, что теперь DjVuLibre компилируется под винду несколько иначе, нежели чем раньше.

DjVuLibre 3.5.17 был скомпилирован мною под винду в MS VC++ 6.0 - и в слегка подправленном виде выложен на офф.сайт DjVuLibre (т.е. хозяевами сайта DjVuLibre).

(Кстати, благодаря мне в DjVuLibre 3.5.17 впервые официально появился чисто виндовый билд DjVuLibre - ранее были, конечно, стороние чисто виндовые билды DjVuLibre - тут например: http://www.djvu-soft.narod.ru/opendjvu/ , но всегда почему-то без исходников - так что официально в DjVuLibre они никогда до 3.5.17 не входили).

В том наборе каждая утилита полностью dll-независима.

А уже ВСЕ последующие виндовые билды DjVuLibre (каждой очередной подверсии - с 18 и далее) компилировал под винду Bill Riemers - слегка переиначив тот мой dsw-проект - так, что там все консольные утилиты стали зависимы от 2-3 библиотек - libdjvulibre.dll, libjpeg.dll и т.п. Заодно все консольные утилиты стали заметно меньше размером - каждая.

Но мне эта схема сильно не понравилась. Я её раскритиковал на форуме DjVuLibre когда-то - но мне не вняли.

Поэтому с тех пор я беру мною же скомпилированные утилиты из DjVuLibre 3.5.17 - и именно их и использую в своих программах. Правда, порой приходится их перекомпилировать - беря более свежий исходник конкретной утилиты из CVS DjVuLibre.

Т.е. лично я сторонник полной dll-независимости. ;)
« Последнее редактирование: 07 ПЭТРам 2010, 23:21:41 от monday2000 »

Vadik789

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
    • E-mail
Re: Создание оглавления в djvu
« Ответ #8 : 08 ПЭТРам 2010, 13:10:23 »
Подозреваю, что это какой-то глюк. Давайте как-то будем его искать.
Уже нашли, в чем проблема: неправильно обрабатывались файлы с пробелами в названиях (пока не исправлено - временно переименовывайте файлы), плюс нужно было подключить еще пару длл-лек, или же использовать версию djvused вообще без длл.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Создание оглавления в djvu
« Ответ #9 : 08 ПЭТРам 2010, 16:49:57 »
Vadik789
Отвечаю на вопросы из ПМ:
По поводу djvused, взятой из последнего DjVuOCR:
Цитировать
А она поддерживает последнее обновление формата? На сайте джвю.орг я видел, недавно какое-то небольшое обновление было, связанное с безопасностью - файлик возле джвю3спец.джвю.
Точно не знаю, о чём Вы. Но ИМХО маловероятно. Мне нужно просто перекомпилировать последний DjVuLibre в dll-независимом варианте. Как-нибудь запланирую. Но, скорее всего, это нечто, связанное с "безопасностью", крайне малоактуально.
Цитировать
Кстати, не знаете, как в МС Вижуал Студио отключить вживление в ехе-шник библиотек МФС? Без них на другом компьютере, на котором нет таких библиотек, не работает. Хотя программа использует вроде бы только чистое АПИ. Без этих библиотек размер файла с 500 КБ уменьшился бы до 100 КБ.
На стадии создания проекта: указываете, включать или нет MFC-dll'ки в exe или нет. По крайней мере, так в MS VC++ 6.0. А вот как в последующих версиях MS VC++ - не знаю, но, наверное, аналогично. Я всегда включаю MFC-dll'ки в exe - так надёжнее.
Цитировать
По поводу копирования OCR-слоя в качестве оглавления - я бы все-таки отказался от этого. К сожалению, большинство книг в джвю делают не так, как нужно (т. е. не 600 дпи, а 300), и потому, если таким методом делать оглавление, то это неизбежно приведет к массовым ошибкам в книгах. Тут дело не только в распознавании (а при 300 дпи нет никакой гарантии, что распознается как нужно), но и в других ошибках, которые будут НЕИЗБЕЖНО возникать - скажем, в формировании дерева. Всегда могут быть те или иные особенности в оглавлении. Ведь никто тщательно не следит за ошибками, вот, недавно, скачал книгу, в которой в оглавлении было несколько пунктов такого типа:

22. Показатели  преломления   газов  при  0° С  760 <i>мм  рт.   ст.   </i>для желтой линии натрия <i>n<sub>D</sub></i>(5893 А)■810

 :D Наверно, оглавление делалось в Букмарк Тул (там нужно делать хтмл), и тот, кто набирал, подумал, что можно вводить любые хтмл-тэги. Даже не открыл оглавление в просмотрщике, чтобы проверить, все ли правильно. Тяп-ляп, и готово - так, к сожалению, все делают.  :(
Это можно пока делать и при помощи DjVuOCR - он позволяет "вытягивать" OCR с желаемых страниц в текстовый файлик. А относительно того, нужна такая фича в Вашей программе, или нет - думаю, в дальнейшем пользователи выскажутся.

Vadik789

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
    • E-mail
Re: Создание оглавления в djvu
« Ответ #10 : 08 ПЭТРам 2010, 16:56:47 »
Точно не знаю, о чём Вы. Но ИМХО маловероятно. Мне нужно просто перекомпилировать последний DjVuLibre в dll-независимом варианте. Как-нибудь запланирую. Но, скорее всего, это нечто, связанное с "безопасностью", крайне малоактуально.
Здесь:
http://djvu.org/resources/

В рубрике "White Papers & Tech Docs" первая ссылка - спецификация, вторая - это новое добавление. Я еще не вникал особо, что там добавлено, но, например, заголовок файла там уже не AT&T, а SDJV. Кто знает, - может, файлы с таким заголовком старой версией джвюзед не будут открываться?
« Последнее редактирование: 08 ПЭТРам 2010, 17:05:15 от Vadik789 »

Vadik789

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
    • E-mail
Re: Создание оглавления в djvu
« Ответ #11 : 08 ПЭТРам 2010, 17:03:55 »
На стадии создания проекта: указываете, включать или нет MFC-dll'ки в exe или нет. По крайней мере, так в MS VC++ 6.0. А вот как в последующих версиях MS VC++ - не знаю, но, наверное, аналогично. Я всегда включаю MFC-dll'ки в exe - так надёжнее.
Я так и сделал. Но размер ехе-файла увеличился с 80 до 500 КБ, хоть там эти библиотеки не используются.  :(

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Создание оглавления в djvu
« Ответ #12 : 08 ПЭТРам 2010, 22:47:03 »
Vadik789
Цитировать
Но размер ехе-файла увеличился с 80 до 500 КБ
Ну и не беда, 500 КБ - это очень хорошо.
Цитировать
вторая - это новое добавление.
А, ну я так и подумал. Эту ссылку в своё время я им подкинул. :) Нашёл её на японоязычном сайте LizardTech. Это называется "Secure DjVu". Моё отношение к этой штуке изложено тут: http://www.djvu-soft.narod.ru/scan/secure_djvu.htm .

Да, скорее всего djvused из DjVuOCR (старый) будет выдавать ошибку на таких файлах, в то время как "новый" будет (по-видимому) выдавать предупреждение, дескать, "это Secure DjVu, я с ним работать не умею, потому и закрываюсь".

DjVuLibre пока не умеет работать с Secure DjVu - т.к. пока что (насколько я знаю) Celartem (теперь Caminova) не передали в DjVuLibre код, отвечающий за работу с Secure DjVu (как то обычно у них делается), а одной лишь спецификации, по-видимому, мало - чтобы сделать реализацию.

Мне нужно просто перекомпилировать "новый" djvused в dll-независимом виде, и тогда он будет по функциональности абсолютно идентичен нынешнему dll-зависимому djvused - только не будет нуждаться в dll'ках. Я это как-нибудь запланирую сделать - пока это не очень критично, но если реально срочно понадобится, то я тут же сделаю.

Но слава богу, я таких DjVu-файлов практически не видел пока вообще.
« Последнее редактирование: 08 ПЭТРам 2010, 22:49:27 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Создание оглавления в djvu
« Ответ #13 : 18 ПЭТРам 2010, 00:06:36 »
Vadik789
Планируете ли Вы сделать свою программу с открытыми исходниками? Какая у неё будет лицензия? Открытые исходники были бы весьма желательны, т.к. это в наибольшей степени отвечало бы тому духу открытости и взаимопомощи, который постепенно всё больше и больше складывается (несмотря на трудности) в сообществе создателей DjVu-книгосканировочных программ (WinDjView, Scan Tailor, все мои программы).

Я, кстати, активный поборник именно программ с открытыми исходными кодами (которые имеют отношение к DjVu-книгосканированию). Все мои программы - с открытыми исходниками и по лицензии GPL 2 и выше.

У меня вообще план - в будущем постепенно максимально перейти на такие программы (т.е. в области DjVu-книгосканирования). Для этого прийдётся создать соответствующие свободно-бесплатные (и с открытыми исходниками) альтернативы (всему либо платному, либо закрытому).

Останется только documenttodjvu и ABBYY FineReader - всё остальное будет полностью свободное. (Но даже и для documenttodjvu и ABBYY FineReader будут альтернативы - правда, похуже качеством).

Так что, если Вы не будете открывать свои исходники - то и Вашей программе прийдётся создавать аналог - но с открытыми исходниками. ;)

Просто иначе никак невозможно - закрытые исходники - это непозволительная роскошь для DjVu-книгосканировочного сообщества.

Vadik789

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
    • E-mail
Re: Создание оглавления в djvu
« Ответ #14 : 18 ПЭТРам 2010, 00:20:14 »
Так что, если Вы не будете открывать свои исходники - то и Вашей программе прийдётся создавать аналог - но с открытыми исходниками. ;)
Я думаю, можно, но имеет ли смысл? Программа не такая уж сложная. Хорошо, если нужно, то, как только будут исправлены все ошибки и все доделано, - выложу.