Создание книг в формате DjVu

         

Распознавание (необязательный):


После того, как DjVu-книга готова, можно добавить к ней текстовый слой, как в Pdf-файле - это одна из возможностей формата DjVu. Я бы отметил, что формат DjVu даже немного лучше в этом отношении, чем формат Pdf: нет таких дичайших проблем с русскими шрифтами.

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

Первая возможность - это использование связки FRFGrab 1.09 или выше + ABBYY FineReader v7.0. Причём для этой цели достаточно иметь даже бесплатную пробную версию FineReader'а, скаченную из Интернета! То есть даже кряк применять не потребуется! Программа FRFGrab 1.09 написана болгарским программистом Генчо. Её последняя версия называется DjvuOCR 2.0 pre. Ссылки на обе версии (1.09 и 2.0 pre есть здесь, на этом сайте). Эта программа перерабатывает FineReader'овские frf-файлы с распознанной информацией и внедряет информацию из них в соответствующие одностраничные DjVu-файлы.

Текст из такого внедрённого текстового слоя можно скопировать в буфер обмена и вставить в текстовый файл, а также он становится "виден" стандартному Windows-поиску (по опции "Искать текст") с проинсталлированной бесплатной LizardTech'овской утилитой DjVu IFilter v1.1 (она есть здесь, на этом сайте) - т.е. можно искать в Windows нужный DjVu-файл уже не по имени, а по нужному ключевому слову внутри него.

Рассмотрим технологию внедрения текстового слоя в DjVu-файл при помощи программы Генчо. Я рекомендую использовать программу DjvuOCR 2.0 pre, а не FRFGrab 1.09, потому что она имеет визуальный интерфейс, тогда как FRFGrab 1.09 - консольная.

Сначала нужно распознать tif-файлы книги в FineReader'е, для того, чтобы получить frf-файлы с распознанной информацией. Я могу посоветовать распознавать tif-файлы в фоновом режиме (так быстрее) - выбираем в меню FineReader'а пункт "Процесс -> Запустить фоновое распознавание".
Язык распознавания для большинства случаев можно оставить по-умолчанию - русско-английский. Хотя иногда бывает полезным задать несколько языков распознавания одновременно - для этого нужно в выпадающем списке языков выбрать второе значение - "Выбор из полного списка языков...". Добавлять имеет смысл (при необходимости) греческий язык (для формул), языки Basic, С/С++, Pascal, Java, Fortran, COBOL  (да, FineReader и такое может!), языки "простые химические формулы", "Английский (Медицинский словарь)", "Английский (Юридический словарь)", "Немецкий (Медицинский словарь)", "Немецкий (Юридический словарь)", "Цифры", бывает, встречаются в книгах немецкий или украинский языки.

Программа DjvuOCR 2.0 pre позволяет осуществить распознавание даже при отсутствии tif-файлов - она может переконвертировать имеющийся многостраничный DjVu-файл в набор tif-файлов для распознавания. Перед распознаванием нужно в FineReader'овском проекте Сервис -> Опции -> Сканирование/Открытие сбросить галочку в пункте "Определять ориентацию страницы (при распознавании)". Это нужно сделать для того, чтобы FineReader не поворачивал на 90 градусов те страницы книги, где текст напечатан с разворотом в 90 градусов (т.е. страницы с альбомной, а не портретной ориентацией).

После распознавания создаём где-нибудь (на диске С:\ удобно) 3 папки - первую для frf-файлов (назовём её "frf"), вторую - для DjVu-файлов (назовём её "djvu") и третью - (назовём её "txt") для txt-файлов с распознанной информацией. Копируем в папку "frf" FineReader'овские frf-файлы с распознанной информацией, а в папку "djvu" - одностраничные DjVu-файлы, полученные от DjVu Solo v3.1, в которые будем внедрять текстовый слой. Папку "txt" оставляем пустой - эту папку наполнит сама программа.

Далее запускаем программу DjvuOCR 2.0 pre. Выбираем режим "Batch mode OCR manager" (он стоит по умолчанию) и нажимаем кнопку "Next".


Заполняем поле "FineReader Project Directory" - нажимаем на кнопку "Browse" и выбираем нашу папку "frf". Точно также заполняем и поле "Output OCR text Directory", только там прописываем путь к нашей папке "txt". Далее заполняем список "DjVu File list" - нажимаем на кнопку "Add" и добавляем наши одностраничные DjVu-файлы. Эта процедура может занять минуту-полторы, нужно подождать. Затем проверяем наличие галочки в пункте "Burn DJVU books" и наличие единицы в поле "Start page # in FineReader Project", выставляя эти значения при их отсутствии. Ставим "1" в поле "Last page # in". Нажимаем на кнопку "Process" и ждём, пока обработаются все наши одностраничные DjVu-файлы.

Теперь всё готово. Текстовый слой внедрён в наши одностраничные DjVu-файлы. Далее с ними можно делать всё то же самое, что и с простыми одностраничными DjVu-файлами - преобразовывать в BMP или сливать в многостраничные DjVu-файлы.

Достоинства такого способа внедрения текстового слоя - относительная простота, поддержка 176 языков (из-за FineReader'а), бесплатность всех используемых программ. Недостатки - невозможность прямого распознавания DjVu-файла без промежуточного преобразования в Tif и невозможность убрать текстовый слой из DjVu-файла.

Этих недостатков лишён второй способ внедрения текстового слоя в DjVu-файл - через использование программы Document Express Editor 5.0 от LizardTech (она есть здесь, на этом сайте). Эта программа появилась недавно, и поэтому этот способ внедрения текстового слоя - самый новый пока. Он удобен тем, что Вы просто открываете в этой программе DjVu-файл и тут же распознаёте его без лишних хлопот. Кстати, этой программой можете даже и убрать внедрённый текстовый слой из DjVu-файла. Недостатки этого способа - эта программа является коммерческой пробной версией, и кряка к ней пока нет. Будем надеяться, появится позже. Выломал же кто-то четвёртую версию Editor'а, почему бы ему не выломать теперь и эту (пятую)? Я бы и сам выломал, да вот, не умею (пока).


Кстати, спасибо польским коллегам за возможность скачать эту программу. Второй недостаток программы - большой размер скачиваемого дистрибутива - 54 МБ, и третий недостаток - меньшее количество языков распознавания (45 против 176 у FineReader'а). Для распознавания используется OCR-движок от Image Recognition Integrated Systems SA, © 2004 (IRIS S.A.).

После завершения кодирования tif-файлов получаются готовые одностраничные DjVu-файлы по принципу "один файл-одна страница книги". Эти файлы потом и выкладываются на бесплатный хостинг www.narod.ru. Причём нужно выкладывать на хостинг именно группы одностраничных DjVu-файлов размером менее 5 мегабайт (таковы условия Яндекс.Народа). Я написал простенькую и одновременно маленькую консольную программу "DjVu Bundling Kit" (240 КБ), которая даёт возможность конечному пользователю применить автосклейку скаченных одностраничных DjVu-файлов в один желаемый многостраничный DjVu-файл всего лишь за ОДИН мышинный клик! Только нужно эту программу приложить к каждой выкладываемой онлайн книге, что при больших размерах этих книг является совершенно несущественным недостатком. Эта хитрость нужна для того, чтобы обойти ограничения бесплатного хостинга www.narod.ru "Файлы не могут превышать по размеру 5 МБ. При этом многотомный архив считается одним файлом". Это ограничение Яндекс.Народа - политическое, а не техническое, оно направлено на недопущение превращения этого бесплатного хостинга в файловый архив. Есть, конечно, и другие бесплатные хостинги, где, возможно, не потребуется так извращаться. Просто бесплатный хостинг www.narod.ru - самый известный и популярный. Мне пока не удалось найти что-то более подходящее. Мне некоторые люди, правда, жаловались, что с www.narod.ru очень плохая скорость скачивания и проблемы с коннектом. Но я, со своей стороны, могу сказать, что бесплатный хостинг www.narod.ru - самый дружественный к пользователю, самый удобный и интуитивно ясный, рассчитанный на полного "чайника", никогда не прекращающий регистрацию новых пользовательских сайтов.Если бы www.narod.ru не существовало бы, то, наверное, пол-Рунета не было бы вовсе.


Содержание раздела