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

         

Кодирование:


Это последний этап создания книги. Я кодирую tif'ы в DjVu при помощи программы DjVu Solo v3.1 - вручную каждый файл с установками по умолчанию (только разрешение ставлю - 400 dpi, а режим оставляю - scanned). Пробовал я и другие способы сжатия - например, пакет DjVuLibre v3.5.13 (скомпилированный под Windows) и DJVU_GUI (я подозреваю, что это то же самое, что и DjVuLibre). Эти 2 способа выдавали DjVu-файлы раза в два больше, чем DjVu Solo v3.1. Пробовал я и режим "bitonal" в DjVu Solo v3.1 - опять DjVu-файлы получались заметно больше, чем в режиме "scanned". Процесс кодирования в DjVu прост - открываем каждый Tif-файл в DjVu Solo v3.1 и в пункте меню "File" выбираем строку "Encode as DjVu". В открывшемся окне устанавливаем режим кодирования (оставляем "Scanned") и разрешение будущего DjVu-файла (обычно "300", я всегда ставлю "400", по умолчанию - такое же, как и в кодируемом Tif-файле).



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


Сделав DjVu-книгу, её можно "подписать" - т.е. добавить информацию о себе - создателе книги и т.п. Это можно сделать путём добавления аннотации - в виде гиперссылки или просто стикера. Всё это можно оформить разными цветами, тенью, выпуклостью и пр. Получается довольно красиво. Лучше сделать этот "штамп" блёклым - так он меньше глаз царапает. В четвёртой версии Editor'а появилась было возможность добавления расширенных аннотаций, которые можно было даже запаролить. В пятой версии от них отказались и вернулись к обычным аннотациям, таким, как в DjVu Solo v3.1.



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


После того, как 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 не существовало бы, то, наверное, пол-Рунета не было бы вовсе.


Редактирование:


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

На первом этапе редактирование получившихся сканов нужно провести в самом ABBYY FineReader v7.0. Кстати, размер получающегося пакета довольно большой - примерно 1,5-1,8 гигабайта, и при редактировании потребуется ещё где-то 300-400 мегабайт. Так что не забудьте до начала сканирования обеспечить на жёстком диске 2-2,5 гигабайт места.

При предварительном редактировании получившихся сканов в ABBYY FineReader v7.0 можно сделать следующее: если вы сканировали сразу 2 страницы книги за один проход сканера, то Вам нужно, во-первых, повернуть на 90 градусов все страницы пакета (это немного увеличивает размер пакета), а во-вторых, разрезать сдвоенные страницы. Разрезать сдвоенные страницы лучше всего при помощи ABBYY FineReader v7.0, потому что это единственная программа, которая делает это автоматически на интеллектуальной основе, а не механически, как скажем, СканКромсатор (которым я так и не воспользовался ни разу: уж больно он навороченный, и хелп к нему есть лишь к первой версии, а последняя версия - 5-я). Повернуть на 90 градусов все страницы пакета можно через меню в ABBYY FineReader v7.0.

Далее в любом случае (сдвоенные страницы или нормальные) нужно создать пустой проект. Затем в этом новом проекте задаём опции: Сервис -> Опции -> "Очистить от мусора" (крайне полезная опция, всегда используйте её) и, если у Вас сдвоенные страницы, там же ставим галочку "Делить разворот книги". Далее, при новом открытом пакете в меню "Файл" выбираем пункт "Открыть изображение" и выбираем все файлы-сканы из старого проекта. Нажимаем "Открыть". Начнёт заполняться новый проект и при этом к каждому добавлемому файлу будут применяться выбранные опции проекта (очистка от мусора, разрезание сдвоенных страниц).
Вы спросите, а почему бы сразу не поставить эти 2 галочки в опциях проекта, ещё до сканирования? Дело в том, что "Очистить от мусора" ещё можно выставить и действительно обойтись 1 проектом, а вот "Делить разворот книги" сразу поставить нельзя, потому что некоторые страницы разрезаются неправильно, и нужно их потом в Adobe PhotoShop v5.0 вручную разрезать. Необходимо упомянуть, что программа ABBYY FineReader, начиная с версии как минимум 4, автоматически исправляет неправильный наклон страниц (по-английски "Deskew"). Это же вроде бы делает СканКромсатор, я не пробовал, ничего не могу сказать.

Окончательное редактирование сканов осуществляется в Adobe PhotoShop v5.0. Я делаю вот что: Сначала создаю в Adobe PhotoShop v5.0 пустой файл-шаблон с такими размерами (которые подбираю опытным путём), чтобы он был чуть-чуть больше "зоны значимости" на каждом скане, т.е. той части площади скана, которая содержит интересующую нас информацию (остальное - поля) и с желаемым разрешением. Потом я просто вручную копирую каждый скан и, вставляя его в шаблон (который, понятно, меньше скана), центрирую скан мышкой относительно шаблона на глаз так, чтобы получились ровные поля. Затем сохраняю теперь уже будующую страницу книги в пункте меню Файл - Сохранить Копию, а изменения в шаблоне - не сохраняю. И так далее, до конца сканов. Попутно "доворачиваю" вручную те сканы, которые ABBYY FineReader v7.0 плохо повернул в нормальное положение, в Adobe PhotoShop v5.0 так: Изображение -> Перевернуть холст -> Произвольный. Вводим произвольный угол поворота, разделяя дробную часть угла запятой. Пункт "Произвольный" будет поначалу неактивным, чтобы активизировать его, нужно изображение преобразовать так: Изображение -> Режим из Bitmap в Ч-Б, а потом, после поворота, обратно в Ч-Б.

Следующим этапом я вручную редактирую в Adobe PhotoShop v5.0 будующие страницы книги - тут Ваша фантазия не ограничена. Я убираю мусор в основном и т.п.

Есть ещё несколько программ предназначенных именно для редактирования сканов бумажных книг (СканКромсатор, SilverFast, RasterID и пр.). Я их здесь не рассматриваю, просто ещё не успел с ними разобраться. Говорят, СканКромсатор - хорошая программа.


Сканирование:


Для сканирования бумажных книг лучше всего использовать программу ABBYY FineReader v7.0, потому что там есть функция "Сканировать несколько страниц", т.е. при запуске этого режима загружается сканерный интерфейс, и при этом потом остаётся лишь совершать простую циклическую деятельность: переворачиваем в книге страницу, кладём её на сканер, нажимаем в сканерном интерфейсе на кнопку "Сканировать" и т.д. до конца книги, тогда как обычная программа, тот же Adobe PhotoShop v5.0 требует загружаеть сканерный интерфейс уже для сканирования каждой страницы книги.

Программа ABBYY FineReader v7.0 работает с понятием "пакет". Пакет - это в данном случае просто папка с отсканированными изображениями в графическом формате *.tif. Обычно страницы сканируются в пакет по умолчанию, который потом нужно сохранить. А можно сразу, при открытии программы создать пакет, и потом уже в него сканировать страницы, т.е каждая сканируемая страница будет автоматически записываться в этот пакет. Каждый пакет в ABBYY FineReader v7.0 имеет настройки, но об этом - чуть позже.

Сканировать бумажную книгу следует с оптическим разрешением не ниже 300 dpi. Я всегда сканирую при 400 dpi. Это нужно для того, чтобы полученные сканы можно было потом распознать - во-первых, в процессе создания внедрённого в DjVu-файл текстового слоя, а во-вторых, в далёком будущем, с целью создания полностью текстовой электронной версии книги.



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


Эта небольшая статья предназначена для тех, у кого есть желание самому делать электронные версии бумажных книг и потом выкладывать их в Интернет в общий доступ. Я постараюсь описать весь этот процесс от А до Я во всех подробностях - начиная от сканирования бумажной книги и заканчивая выкладыванием готовой книги в Интернет. Я постоянно думаю над усовершенствованием и упрощением этой технологии. Да и не только я один. Нас уже сотни по всему миру. Таких книг, как на этом моём сайте, уже более 8 тысяч и они занимают 5-8 DVD дисков. Надеюсь, что скоро они поступят в свободную продажу. Буду следить за новостями и сообщать их на этом сайте. Сразу скажу, что создавать электронные версии бумажных книг - это не просто, а очень просто и легко. Самое трудное в этом деле - отсканировать бумажную книгу. Как только Вы получаете полный комплект сканов книги - считайте, что книга уже почти готова. Всё, что нужно от Вас для создания электронной книги и выкладывания её в Интернет - это компьютер, сканер, модемный доступ в Интернет и немного Вашего терпения и желания. Ну и конечно исходная бумажная книга. Всё остальное - описание технологии книгостроения, ссылки на все необходимые программы - есть здесь, на этом сайте. Кстати, выложить готовую книгу в Интернет лучше всего по специальному тарифу у местного провайдера - "оплата только за трафик". По этому тарифу исходящий трафик не оплачивается. Нас уже сотни - присоединяйтесь к нам и нас будет ещё больше. "Присоединяйтесь" - означает сделать хоть одну такую электронную книгу, обязательно выложить её в Интернет в общий доступ и прислать мне ссылку на Ваш сайт, где лежит выложенная Вами электронная книга. По всем вопросам пишите мне на мой почтовый ящик.

Есть ещё один аспект такой деятельности - политический. В условиях незримой войны против бывшего СССР, когда уничтожается всё и в том числе наше образование - то, что делаем мы - есть попытка хотя бы сохранить имеющееся. Давайте не будем покорными баранами на убой и будем делать хоть что-то, например, вот такие электронные книги.



я опишу технологию, по которой


В этой небольшой статье я опишу технологию, по которой я создал все книги в формате DjVu на своём дочернем сайте.
Эта моя собственная технология, она совершенно проста и даёт хорошие результаты. Её единственный недостаток - опора преимущественно на ручную работу, но, с другой стороны, это даёт возможность постоянно контролировать качество получаемого результата в процессе создания книги.
Для создания электронных книг в формате DjVu я использую следующие программы: ABBYY FineReader v7.0 (достаточно использовать бесплатную пробную версию, скаченную из Интернета), Adobe PhotoShop v5.0, DjVu Solo v3.1. Просматривать готовые DjVu-книги лучше всего броузерным DjVu-плагином v5.0, потому что он поддерживает мышиное колёсико (правда, пока лишь в пределах текущей страницы многостраничного DjVu-файла), чем не могут похвастаться все предыдущие версии плагина. Мне, правда, не нравится его иконка для DjVu-файлов, так что можно поставить иконку от плагина версии 4.1 из пакета DjVu-иконок.
Опишем процесс создания DjVu-книги по порядку.

я могу сказать, что создавать


Подводя итоги, я могу сказать, что создавать DjVu-книги - относительно легко и просто, и это может делать любой владелец сканера. К тому же так можно создавать электронные версии не только книг, а и рисунков, схем, таблиц, карт и т.п. Многие прогрессивные люди так и поступают. Сходите, например, на Библиотеку научной литературы - там таких DjVu-книг полно, почти десять тысяч, и ясно, что формат DjVu сегодня - это практически единственный способ получить нужную техническую информацию. Не будете же Вы покупать все эти книги, да даже если и представить, что накупили бы, то где хранить эту гору книг? Так что, не жадничайте, граждане, делитесь с народом (бесплатно!) своими книгами в виде DjVu-сканов, все мы от этого в конечном итоге лишь выиграем.
Виктор.
Мой E-Mail
27 декабря 2004 года.
P.S. После создания DjVu-книги Вам нужно tif-сканы (а это будет где-то 300-400 мегабайт вместо прежних 1,5-2 гигабайт - да, всё из-за этих лишних полей) ещё раз прогнать через ABBYY FineReader v7.0 - т.е. создать новый проект и, открыв в него будующие страницы книги, сохранить проект и скопировать сохранённые tif'ы в свою папку. У Вас получится набор tif'ов в 30-40 мегабайт! Просто ABBYY FineReader v7.0 файлы, сохранённые в Adobe PhotoShop v5.0, сжимает в разновидность tif - tif  CCITT Group 4(или Fax 4, это то же самое), что и даёт такое уменьшение размера.
Сохраните эти tif'ы, они Вам ещё пригодятся.
P.S. Эта статья ещё будет дорабатываться в самое ближайшее время. Я рассмотрю подробнее процесс выкладывания готовой DjVu-книги в Интернет с обзором бесплатных хостингов и способов закачки. Ну и прочее...