DJVUmark

Автор этих строк начал работать с копиями книг в формате Djvu сравнительно давно. Это было тогда, когда единственными инструментами по работе с этим форматом был plug-in Lizard и программа SOLO. Для облегчения работы с книгами в этом формате нам пришлось самим создавать для себя программные инструменты, призванные сделать более удобным чтение книг в этом формате. В ходе этих работ сначала появилась программа Gener View Djvu, а затем и Ebook Interface.

Программой Ebook Interface нами было обработано несколько сотен файлов Djvu.

В ходе нашего интенсивного использования программы и из откликов ее пользователей стало ясно, что некоторые ее функции устарели или не находят практического применения ( например, внедрение bookmarks для программы DjVuReader, интерфейс для файлов в формате pdf ), других функций недостает. Например, при создании интерфейса для книг с пропущенными страницами возникали определенные трудности. Надо было как-то автоматизировать этот процесс. Эта программа практически не позволяла создать интерфейс для книг с не стандартной нумерацией страниц или специфичной адресацией термов в предметном указателе. Вызывал нарекание ввод данных для программы.
Поэтому   программу  постепенно модифицировали. После того как была убрана функция создания интерфейса для файлов в формате pdf название Ebook Interface стало не соответствовать содержанию программы, его надо было как-то конкретизировать. Выбор пал на словосочетание DJVUmark.
Программу DJVUmark решено было сделать доступной для читателей нашей страницы.

Добавление, июль 2011.  Наши замечания об отсутствии практического применения интерфейса для файлов в формате pdf были преждевременными. Теперь функция создания htm-интерфейса для файлов формата pdf восстановлена. Оказывается, что html-интерфейс для файлов в формате pdf  стал  очень востребованным при создании электронных библиотек. Это объясняется следующим. Во-первых, html-интерфейс является превосходным контейнером ключевых слов к данной электронной книге , так как в оглавлении книги и ее предметном указателе упоминаются все основные понятия, которые рассматриваются в данной книге. Это несравненно больше, чем в обычных библиотеках, когда книге ставится в соответствие несколько ключевых слов, порой слишком общего плана. Во-вторых, интерфейс позволяет "за пару кликов" сразу открыть страницу книги, на которой упоминается данное ключевое слово. В-третьих, поскольку информация об оглавлении и предметном указателе вынесена из книги и помещена в файл текстового типа (. htm), то для поиска ключевых слов можно воспользоваться  программами поиска текстовой информации общего назначения, например, функциями поиска, имеющимися в  файловых менеджерах типа Total Commander и т.п.  И, наконец последнее замечание,  простая коллекция электронных книг ( djvu или pdf  формата )  с их файлами htm-интерфейса  при наличии  файлового менеджера ( который есть практически у каждого пользователя электронных книг) превращается в полноценную электронную библиотеку с  эффективным поиском информации, недоступным большинству современных электронных библиотек. Все сказанное не виртуальные возможности. Это работает уже пару лет на практике. Например, в одном академическом Институте в локальной сети находится электронная библиотека по оптике, содержащая более 2,5 тысяч книг. За считанные  минуты ( а при малой загрузке сети и за секунды ) можно открыть страницу книги, содержащую данное найденное ключевое слово.

Возможно,  программа будет полезна тем,  кому необходимо

  •  внедрить в Djvu-книгу оглавление и предметный указатель,
  •  читать  многотомные  Djvu-файлы   типа  энциклопедий  как  единое  целое  с пользованием оглавления     и  предметного указателя,  
  •  создать htm-интерфейс для Djvu-файла , чтобы поместить Djvu-файл на web-страницу.
  •  создать htm-интерфейс для pdf  и djvu файлов с целью построения  электронной библиотеки
     

DJVUmark  генерирует  пакет  файлов  двухоконного  интерфейса  для   чтения электронной  книги   (формат  djvu и pdf)   с  использованием   её  оглавления  и предметного  указателя.   Кроме того, программа создает структурированный файл bookmarks.htm для программ:
1)  Andrew Zhezherun EmbedBookmarks-1.0, которая внедряет его в djvu файл;
2) Flaviano Petrocchi  Jpdfbookmarks_cli.exe в случае файлов pdf.
Тогда такие файлы djvu  современными  вьюверами ( и Internet Explorer'ом с plug-in'ом, но более надежно броузерами Mozilla firefox, Opera, Google Chrome, Safari ) можно просматривать также в двухоконном режиме. В этой версии программы добавлена функция внедрения bookmarks и в многотомные файлы. Но такие файлы пока можно просматривать только вьювером WinDjView в случае файлов djvu. Для файлов pdf ограничений нет.

Программа DJVUmark создает html-интерфейс и формирует файл bookmarks практически для всех типов Djvu и Pdf -файлов, включая
       -   файлы с пропуском страниц;*
       -  файлы со вставленными  страницами, не имющими номеров, как правило, это иллюстрации ;*
       -  файлы типа сборника статей из различных журналов, номера страниц которых есть неупорядоченные отрезки  натурального ряда чисел;*
       -  файлы, в которых каждый раздел имеет собственную сложную(номер раздела + порядковый номер страницы в  разделе ) нумерацию страниц;*
      -  файлы, представляющие собой объединение нескольких файлов, имеющих свою собственную нумерацию страниц.*   В качестве примера смотрите 4х томный   справочник            HANDBOOK OF ADVANCED MAGNETIC MATERIALS, Yi Liu, David J. Sellmyer, Daisuke Shindo;
       -  файлы, в которых страница равна развороту книги
      -  файлы, в которых печать на странице в два столбца и нумеруются столбцы а не страницы. Это эквивалентно случаю, когда страница равна развороту книги, но порядок          номеров страниц в развороте нечет-чет;*
      -  файлы, в которых в предметном указателе термы адресуются не к номерам страниц, к номерам разделов.*
      -  файлы для многотомных изданий, в которых в кумулятивном предметном  указателе термы адресуются  к номерам страниц, но без указания к какому тому она принадлежит.*
      -  файлы с неоднородными сканами, т.е. файлы, в которых отдельные логические группы страниц ( это могут отдельные главы книги или отдельные журнальные статьи в буклете)  сканированы разными методами: например, одна группа отсканирована постранично, другая разворотом и т.п. В таких случаях возникают проблемы с синхронизацией номеров страниц книги и ее копии.* Подобнее в  заметке "О синхронизации номеров страниц книги и номеров копий этих страниц в DJVU-файле"  Это все справедливо и для pdf  файлов.
      - файлы, в которых   оглавления имеют строки, содержащие несколько рубрик со ссылками на номера страниц;  обычно в книгах  в каждой строке присутствует только одна рубрика с одной ссылкой.  Пример.

Некоторые пользователи Djvu формата для навигации по книге вместо bookmarks используют гиперссылки со страниц оглавления или предметного указателя. Создают такие гиперссылки с помощью программы DjVu Hyperlinks Editor.

Заметим, что типы файлов, помеченные звездочкой, которые обрабатывает программа DJVUmark, программа DjVu Hyperlinks Editor не обрабатывает.

.Не стандартные оформления книг используются издательствами при выпуске энциклопедий и справочников с целью сокращения работы по переизданию таких книг при пополнении нового материала в этих книгах. Для этой цели иногда в книгах применяют собственную нумерацию страниц в пределах каждого раздела ( пример,"HANDBOOK OF OPTICS", Michael Bass, в 4-х томах) или в предметных указателях термы адресуют к номерам разделов книги ( пример,"СПРАВОЧНИК ПО МАТЕМАТИКЕ", Корн, Т. Корн).

Есть возможность использовать различные системы адресации в пределах одной книги. Например, в энциклопедии "Техническая энциклопедия" под ред.Л.К. Мартенс оглавление статей адресуется по схеме "страница копии книги равна странице книги", а термы предметного указателя адресуются по схеме "страница копии книги равна развороту книги, а порядок номеров нечет-чет." Заметим, что в самой энциклопедии такого оглавления нет, оно составлено кем-то из "колхозников".  Таким образом программой DJVUmark сгенерированы закладки(оглавление+предметный указатель) для всех 26 томов энциклопедии. Кстати, внутри некоторых томов  энциклопедии есть страницы с рисунками, которые не имеют номеров. 

Входными файлами для генерации двухоконного интерфейса являются текстовые (.txt) файлы оглавлений и предметных указателей в том виде, который мы наблюдаем, читая книгу или многотомную энциклопедию. Способы получения текстов оглавления и предметного указателя могут самые разные: копирование из текстового OCR-слоя с помощью Plug-in Lizard ( или программы WinDivu) или с помощью внутренней функции копирования в отдельные файлы текстов Титульной страницы, Оглавления и Предметного указателя ; при отсутствии OCR-слоя или плохом его качестве этот текст можно получить,  воспользовавшись какой-либо программой OCR, например, FineReader.

В последней версии программы допускается использование книжной копии предметного указателя без предварительного редактирования. Если в тексте указателя алфавитные секции не разделены буквами, то лучшей читабельности текста закладок ( желательно !) их вставить.
Если оглавление в книге оформлено согласно общепринятым в издательском деле соглашениям, т.е. разделено на части, секции, разделы, структурно-индексные разделы и т.п., то книжный текст такого оглавления также можно не редактировать, даже отточия можно сохранить. Об этом подробнее в заметке О построении дерева оглавления.

Одним из достоинств html-интерфейса является возможность одновременного поиска информации в различных Djvu(pdf) файлах, так как при использования htm-интерфейса тексты оглавления и предметного указателя  помещается в htm-файлы. Способ решения задачи такого поиска определяется тем, где размещается библиотека из DJVU-книг: на web-странице или на локальном компьютере. Если библиотека находится на web-странице, тогда можно для целей поиска использовать инструмент поиска GOOGLE, как это сделано на головной странице нашего сайта. В случае расположения библиотеки на локальном компьютере можно воспользоваться функцией поиска в заданной папке операционной системы Windows. Для этого открываем Проводником нужную папку и выбираем инструмент поиска. В открывшемся окне устанавливаем поиск в файлах *.htm заданного контекста.

Программа DJVUmark поможет создать каталог электронной библиотеки книг. Об этом подробнее в файле "Об одном подходе к организации электронной библиотеки"


При просмотре книг Internet Explorer'ом предусмотрены два режима работы: OFF-LINE и ON-LINE( только для файлов djvu); последний режим используется при чтении книги, расположенной на Web-странице. Режимы отличаются используемыми методами вызова заданной страницы книги и форматом  представления книг.

Процесс генерации интерфейса автоматизирован и управляется специальным мастером.

Если документ в djvu
(pdf) формате является полной копией бумажного документа, то программа  практически не требует ввода дополнительных управляющих параметров. Процесс генерации разделен на два этапа. При генерации html-интерфейса используется технология шаблонов. На первом этапе на основании входных данных о свойствах Djvu-документа генерируются файлы-образцы оглавления, предметного указателя и управляющих параметров. Далее необходимо файлы-образцы наполнить реальным содержанием, и второй раз запустить программу.
Интерфейс для Internet Explorer'а обеспечивает работу с многотомными изданиями и  допускает использование графических файлов, что пока всё недоступно для программ-вьюверов.
 

   Заметим, что после работы программы DJVUmark создается папка с именем обрабатываемого файла djvu(pdf), где хранится htm-интерфейс к файлу djvu(pdf) . Эту папку не следует выбрасывать, даже если выполняем программу не с целью создания htm-интерфейса, а с  целью внедрения закладок в файл djvu (зва). Папка эта представляет собой своеобразный контейнер ключевых слов, отражающих основное содержание книги. Таким образом  файл djvu(зва) в сочетании с этой папкой является хорошим строительным элементом электронной библиотеки книг в формате djvu.  Например, если папка BOOKS   хранит множество книг ( возможно относящихся к разным предметным областям ) в формате djvu с их папками, полученными с помощью DJVUmark, и на компьютере имеется файловый менеджер Total Commander, то это означает, что в нашем распоряжение имеется полнофункциональный фрагмент библиотеки. В самом деле, используя инструмент поиска программы  Total Commander, мы  можем найти и открыть любую книгу с заданным названием или найти все книги, содержащие данное ключевое слово, более того, буквально в  четыре клика открыть страницу книги, содержащую данное ключевое слово. Для этого в окне поиска программы Total Commander надо :
- в графе "Искать файлы" записываем текст *content*,htm; *index*.htm
- в графе "Место поиска" указываем          путь к папке BOOKS
-
в графе " С текстом"    записываем  КЛЮЧЕВОЕ СЛОВО
Тогда  1) первый клик - запуск функции искать, 2) второй клик - выбор файла из результатов поиска, 3)третий клик - открытие выбранного файла,  4) четвертый клик-  по номеру страницы, стоящим рядом с найденным ключевым словом. Смотрите пример поиска.

Обращаем внимание на то, что нет необходимости каждой книге ставить в соответствие набор ключевых слов, отражающих содержание книги !!!  Они уже содержатся в текстах файлов  оглавления и предметного указателя, которые составляют основу htm-интерфейса.  Ни одна из существующих электронных библиотек не может предложить столь эффективный информационный поиск. Чтобы получить полноценную библиотеку, необходимо множество файлов папки BOOKS пополнить файлом каталога . Более подробно об этом  в файле "Об одном подходе к организации электронной библиотеки"


Программа работает как консольное приложение с графическим диалогом (((Windows 2000,Windows XP). Она использует внешние программы 
EmbedBookmarks-1.0, Djvused, Djvmcvt и Jpdfbookmarks_cli.exe

Загрузка программы и её описания:

number_insertion  Назначение -  обработка отчета результатов поиска  программой Search and Replace for Windows заданного контекста  во множестве текстовых файлов   Предполагается , что в именах текстовых файлов  содержатся числа. Программа вставляет в конец строк, где найден искомый контекст, число из имени файла,  который содержит эти строки. Используется  программа в задаче восстановления оглавления книги по тексту ее DJVU-копии путем  поиска структурных номеров заглавий. 
Bolds_text_out_htm  Назначение - извлечение из htm-файлов фрагментов текста, напечатанного жирным шрифтом и составления списка этих фрагментов. В конце каждого фрагмента вставляется число, если оно  содержится в имени файла, которому принадлежит фрагмент. Эта программа также используется  в задаче восстановления оглавления книги по тексту ее DJVU-копии но путем  поиска  строк текста, которые  напечатанные жирным шрифтом. Кроме того, с ее помощью можно индексировать названия словарных статей в  Djvu-копиях толковых и энциклопедических словарей, а также лингвистических словарей, языки которых представимы в ASCII коде, так как эти названия, как правило, выделены жирным шрифтом.               
Index_dicview_format Утилита Index_dicview_format предназначена для преобразования  bookmarks.htm в текстовый файл формата DicView. Она используется в задаче автоматизации формирования индекс файлов словарей для программы WinDjView-0.5 Смотрите пример .
convert_bookmark_to_text Утилита convert_bookmark_to_text предназначена для преобразования  файла bookmarks.html, выводимого программой Bookmark_Tools2 из закладок файла DJVU,  в текстовый файл. Она используется в задаче преобразования  электронной книги в формате html в формат djvu.
Какой программой лучше преобразовывать файлы из формата pdf в djvu. В последнее время мне пришлось преобразовать более 1000 файлов из pdf в djvu.
Пришлось перепробовать многие программы преобразовании. Очень частые отказы. То затыкается на качественной обложке, то внутри.

ОПЫТНЫМ ПУТЕМ пришел к выводу, что найболее надежной программой является программа pdf2djvu ( автор Jakub Wilk http://code.google.com/p/pdf2djvu)
Последнее время ни одного отказа. Но имеет один недостаток - очень медленно работает с большими файлами.
Не знаю тонкостей алгоритма, но там очевидны две фазы
1) преобразование страницы pdf в djvu
2) сборка файла djvu
Длительность второго этапа нелинейным образом зависит от количества страниц.
Поэтому задачу преобразования решаю в три этапа.
1. Разрезание файла pdf плагином ISIToolBox программы ACROBAT на 100страничные файлы
2. преобразование частей
3. слияние частей программой программой djvubundle.exe из пакета Lizardtech Document Express Enterprise

Второй и третий этап решается с помощью батфайла, рассчитанного на обработку книг размером до 3199 страниц.
В итоге время преобразования соизмеримое с другими программами PDF2DJVU при практической безотказности преобразования.

Текст процедуры pdf_to_djvu-max3199.bat

Для того, чтобы приспособить эту процедуру для работы на конкретной машине, необходимо
определить на этой машине:
1) путь к программе pdf2djvu Jakub Wilk
2) путь к программе djvubundle.exe из пакета Lizardtech Document Express Enterprise

Используя текстовый редактор совершить две замены:
a) текст "I:\DJVU_TOOLS\pdf2djvu-0.7.5\pdf2djvu.exe" заменить на "значение текста нового пути к программе pdf2djvu"
b) текст "L:\PROGRA~1\LIZARD~1\LIZARD~2\bin\DJVUBU~1.EXE" заменить на "значение текста нового пути к программе djvubundle.exe"

Пример преобразования файла name.pdf..

1. разрезаем файл на части:

  #1-#100.pdf
  #101-#200.pdf
  #201-#300.pdf
  #301-#400.pdf
  #401-#500.pdf
  #501-#586.pdf

2. Вызов процедуры : pdf_to_djvu-max2199.bat 501 586 name
 

Добавление закладок к pdf  файлу. Программа DJVUmark генерирует текст файла Bookmarks.htm, в котором текстовые копии оглавления и предметного указателя электронной книги ( формата djvu или pdf ) с помощью тегов языка HTML представлены в виде структурного дерева. В случае электронной книги в формате DJVU любая из программ EmbedBookmarks-1.0 или BookmarkTool-2.0 может этот файл закладок внедрить в файл DJVU.

Программа Bkmrk__htm_to_space написана для преобразования файла Bookmarks.htm в текстовый файл Tilde_bookmarks.txt, в котором уровень данной строки в дереве закладок определяется  по количеству символов ~(тильда) в начале этой строки. Отсутствие знака ~ означает, что данная строка нулевого уровня. В остальном формат строки соответствует синтаксису формата строки закладок, который необходим для работы программы jpdfbookmarks-2.5.1. Поэтому файл закладок Tilde_bookmarks.txt программой jpdfbookmarks-2.5.1 может быть внедрен в электронную книгу в формате pdf.  Для ясности сравните два файла: Bookmarks.htm и Tilde_bookmarks.txt

Сразу отметим, что все три здесь упомянутые программы имеют статус Freeware. Программы Bkmrk__htm_to_space и jpdfbookmarks-2.5.1 имеются в папке, ссылка на которую дана ниже.

Таким образом, теперь имеется возможность файл закладок Bookmarks.htm внедрять в pdf , используя следующий командый файл Bookmarks_htm_to_pdf.bat :

Rem ‚­Ґ¤аҐ­ЁҐ %1.htm ,
Rem ў д ©« %2.pdf.
Rem ўл室­®© д ©«: %2.new.pdf
Pause
del %1.txt, Tilde_%1.txt, %2.new.pdf
Copy %1.htm %1.txt
Bkmrk__htm_to_space.exe %1
jpdfbookmarks
_cli.exe -i "~" -p "#" --apply Tilde_%1.txt --out %2.new.pdf %2.pdf

Этот командный файл имеет в качестве параметров имена двух файлов без их расширений :
1. имя файла закладок в формате htm,
2. имя электронной книги в формате pdf

К сожалению, в параметрах командного файла нельзя использовать пути к файлам. Поэтому при работе с этим командным файлом входные файлы должны размещаться в папке, где находится командный файл. В данном случае в папке Embedbookmarks_to_pdf, если этот файл загружен с текущей страницы (Embedbookmarks_to_pdf.part1.rar, Embedbookmarks_to_pdf.part2.rar, Embedbookmarks_to_pdf.part3.rar).

Например, если даны файлы Bookmarks.htm и Light_Matter_Interaction.pdf, тогда после выполнения  команды"Bookmarks_htm_to_pdf.bat Bookmarks Light_Matter_Interaction.pdf" получим файл с добавленными закладками Light_Matter_Interaction.new.pdfОбратите внимание файл djvu имеет точно такие же закладки.

Обращаем внимание на последнюю строку в закладках файла Light_Matter_Interaction.new.pdf . Это строка перехода к чтению файла формата djvu. Более того, в закладках в файлов pdf можно использовать переходы к заданным страницам других файлов,  т.е. включать в закладки кумулятивные предметные указатели в случае  многотомных файлов, открывать любые документы , для которых  в операционной системе имеются программы для их обработки. А это еще и означает, что на основе закладок к файлам можно создавать каталоги электронных библиотек.