Djvu добавить текстовый слой

Обновлено: 02.07.2024

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

2. Как именно пользоваться форматом DjVu?

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

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

3. Какой программой кодировать файлы в формат DjVu (OC Windows)?

Используйте DjVu Small. Эта программа использует "фирменные" консольные утилиты от LizardTech - поэтому она ничем не хуже оригинального пакета LizardTech Document Express Enterpise with DjVu 5.1. Зато DjVu Small более удобна в работе и имеет маленький размер.

Кроме того, для этой цели можно использовать программы: LizardTech Document Express Enterpise with DjVu 5.1 (DEE 5.1), LizardTech Document Express Enterpise with DjVu 5.1 Light Edition (DEE 5.1 LE), Document Express Editor (5 или 6 версии), DjVu Solo 3.1. Однако все эти программы по разным причинам менее предпочтительны (либо они огромного размера, что затрудняет скачивание, либо крайне неудобны для пакетного кодирования).

4. Какой программой декодировать DjVu-файлы в обычные графические файлы (OC Windows)?

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

Кроме того, для этой цели можно использовать программы: DjVu Small, Irfan View + Irfan View DjVu Plugin v3.95 или выше, и любой обычный виртуальный принтер. Однако все эти программы по разным причинам менее предпочтительны (или это вероятность сбоя, или относительная сложность настройки).

5. Как декодировать один многостраничный DjVu-файл во множество одностраничных (обычных) графических файлов?

Используйте DjVu OCR 2 или выше. Он принимает на входе один многостраничный файл и декодирует его во множество одностраничных простых графических файлов.

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

Поэтому Вы даже не сможете напрямую преобразовать множество одностраничных DjVu-файлов в соответствующее ему множество простых одностраничных графических файлов - Вам потребуется сначала собрать имеющееся множество одностраничных DjVu-файлов в один многостраничный DjVu-файл, и только потом декодировать его в желаемое множество простых одностраничных графических файлов - это политика LizardTech (судя по DEE 5.1) - поэтому она реализована также и в DjVu Small.

Добавлено 28.02.2011: На сегодняшний день наиболее рекомендованная программа для декодирования DjVu - это MiniDjVu Plus v1.3 (893 КБ). Пока что это единственная программа, которая при декодировании "битых" страниц многостраничного DjVu-файла (а также пустых белых) создаёт чистые белые листы (а все остальные программы в лучшем случае просто пропускают такие DjVu-страницы при декодировании). В дальнейшем такой функционал планируется добавить в DjVu Small.

6. Как собрать многостраничный DjVu-файл из множества одностраничных DjVu-файлов?

Используйте Document Express Editor v5.0.0 Build 16 plus (без OCR и справки). Откройте в нём первый в последовательности одностраничный DjVu-файл, затем выберите в меню Edit -> Insert Page(s) After. выберите в появившемся окне все остальные одностраничные DjVu-файлы из данной последовательности, и сохраните полученный многостраничный файл.

7. Как добавить одностраничный DjVu-файл в имеющийся многостраничный DjVu-файл?

См. предыдущий вопрос - нужно проделать точно такие же действия, только добавлять надо не множество, а один данный одностраничный DjVu-файл.

8. Чем просматривать DjVu-файлы (OC Windows)?

Используйте WinDjView. Это наилучший выбор - данная программа превосходит все прочие DjVu-просмотрщики - и даже "фирменный" броузерный DjVu-плагин от LizardTech.

9. Как напрямую переконвертировать Pdf-файл в DjVu-файл (Pdf -> DjVu)?

Для именно прямой конвертации используйте пакет Pdftodjvu LE. Преимущество такой конвертации в том, что при этом из Pdf-файла в DjVu-файл переносится OCR-слой и гиперссылки (но иногда бывают проблемы с русскими кодировками).

Однако, далеко не всегда имеет смысл делать именно прямую конвертацию Pdf -> DjVu. В отличие от формата DjVu, формат Pdf не является графическим. Формат Pdf - это формат-контейнер, который может содержать любой тип данных - текст, картинки, таблицы, даже аудио- и видеоинформацию. Формат Pdf обычно делится на такие виды:

- Векторный : в таком Pdf-файле содержится только символьная информация - текст, таблицы, графики, формулы, чертежи. Такие Pdf-файлы (внешне они выглядят как текст, набранный типографским шрифтом) лучше всего конвертировать в формат DjVu напрямую - получите отличное качество и наименьший размер DjVu-файла.

- Растровый : в таком Pdf-файле содержится только неформализованная информация - растровые картинки. Такие Pdf-файлы (внешне они выглядят как сканированное изображение текста) лучше всего конвертировать в формат DjVu НЕ напрямую - а по схеме "Pdf -> Tif -> DjVu". Всё дело в том, что прямой конвертер Pdftodjvu LE "заточен" именно на векторные Pdf-файлы, а растровые он плохо кодирует - получаются большие DjVu-файлы.

- Растрово-векторный : Такие Pdf-файлы, как правило, лучше конвертировать в формат DjVu НЕ напрямую - по схеме "Pdf -> Tif -> DjVu". И только в отдельных редких случаях можно применить прямое конвертирование "Pdf -> DjVu". Всё это зависит от конкретного Pdf-файла, от вида и соотношения растрового и векторного содержимого. Попробуйте оба варианта конвертирования и выберите наилучший.

10. Как напрямую переконвертировать DjVu-файл в Pdf-файл?

Это можно сделать при помощи какого-либо обычного виртуального принтера, например, Acrobat Distiller (устанавливается автоматически при инсталляции полного Adobe Acrobat (не-Reader'а) (показал наилучший результат), FinePrint v5.29, pdfFactory или LEADTOOLS ePrint v4.0. Правда, не все они корректно работают с русским языком.

При такой конвертации OCR-слой и гиперссылки не переносятся из DjVu-файла в Pdf-файл.

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

11. Как напрямую переконвертировать DjVu-файл в Word'овский Doc-файл?

Это невозможно. Формат DjVu - это графический, а не текстовый формат. Поэтому DjVu-файлы не содержат никакой информации о структуре документа - в лучшем случае только внедрённый текстовый OCR-слой - так что информацию для подобной прямой переконвертации брать в DjVu-файле просто неоткуда.

Поэтому для создания Word'овского Doc-файла из DjVu-файла используется традиционный путь: DjVu-файл преобразуется в какой-нибудь обычный графический формат (см. п.5) и распознаётся в ABBYY FineReader v7.0 (или v8.0). В последних релизах ABBYY FineReader v9.0 предусмотрена прямая поддержка на чтение формата DjVu (при формировании пакета на распознавание).

Есть 2 способа решения этой проблемы:

А. Открывать этот файл и работать с ним в Document Express Editor v5.0.0 Build 16 plus (без OCR и справки) (2,0 МБ), а не в DjVuSolo v3.1 NonComm.

Б. Понизить версию этого djvu-файла при помощи утилиты DjVuVersion и тогда станет возможной полноценная работа с ним в DjVuSolo v3.1 NonComm.

13. Имеют ли DjVu-файлы встроенный текстовый OCR-слой?

И да, и нет. То есть возможность добавить в DjVu-файл текстовый OCR-слой существует (предусмотрена cпецификациями DjVu). Обычно содержимое DjVu-файла распознаётся посредством ABBYY FineReader v7.0 (или v8.0) и затем результат распознавания вставляется в DjVu-файл посредством программы DjVuOCR 2.1.

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

14. Зачем вставлять текстовый OCR-слой в DjVu-файл?

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

Обычно текстовый OCR-слой вставляют в DjVu-книгу просто для удобства - чтобы, читая такую книгу, можно было бы выделить мышкой нужный кусочек текста, скопировать его в буфер и вставить в текстовый файл.

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

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

Для такого поиска используют разные программные средства - например, Google Desktop Search + DjVu Indexer Plugin или (что лучше всего) dtSearch + LizardTech DjVu iFilter.

В пределах одной DjVu-книги можно искать по ключевому слову прямо в DjVu-просмотрщике - например, в WinDjView (в броузерном DjVu-плагине тоже можно).

Не исключено, что когда-нибудь и популярные поисковые сервера Интернета сделают у себя поддержку такой возможности (хотя пока, к сожалению, налицо прямо противоположная тенденция).

Однако, далеко не во все DjVu-книги имеет смысл вставлять текстовый OCR-слой - в основном, только в DjVu-книги учебно-справочного характера. Скажем, в развлекательные DjVu-книги (например, о плаваниях капитана Кусто) вставлять текстовый OCR-слой смысла почти нет.

15. Как разобрать многостраничный DjVu-файл на одностраничные DjVu-файлы?

А зачем это Вам? Подобная необходимость практически никогда не должна возникать. Хотите декодировать многостраничный DjVu-файл в набор простых одностраничных графических файлов? Или же переконвертировать его в Pdf? Или осуществить иное преобразование? Так для этого вовсе не надо предварительно разбирать многостраничный DjVu-файл на составляющие его "страницы"- см. предыдущие вопросы.

Общий принцип таков:

С форматом DjVu наиболее удобно работать в форме многостраничных файлов - а не в форме соответствующего множества одностраничных DjVu-файлов.

А как же быть, если Вы хотите сделать выборку из имеющегося многостраничного DjVu-файла - то есть Вам нужно оформить некое подмножество "страниц" многостраничного DjVu-файла как новый отдельный многостраничный DjVu-файл?

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

А почему же эту задачу нельзя выполнить разборкой-сборкой многостраничного DjVu-файла? И можно ли вообще проделать подобную разборку-сборку?

Да, такую разборку-сборку проделать можно. Но крайне нежелательно - сильно увеличивается размер файла. Причина в том, что при создании многостраничного DjVu-файла любой LizardTech DjVu-кодировщик использует т.н. "словари" (другое название - "djbz-словари"). Словарь - это особенная уловка для снижения размера многостраничного DjVu-файла. Словарь содержит список геометрических форм, повторяющихся на ряде DjVu-страниц и общих для них. Как правило, это буквы текста. Словарь обычно автоматически создаётся для каждых 10-20 страниц (это настраиваемый параметр) многостраничного DjVu-файла DjVu-кодировщиком при кодировании и автоматически интегрируется в получающийся многостраничный DjVu-файл.

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

Практически все нынешние многостраничные DjVu-файлы имеют такие встроенные словари.

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

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

Начнём с разборки: для этой операции можно использовать Document Express Editor v5.0.0 Build 16 plus (без OCR и справки) - выделять вручную отдельно каждую "страницу" в многостраничном DjVu-файле и сохранять её отдельно через "Save Page As. " - получите соответствующий набор одностраничных DjVu-файлов.

Однако, подобный ручной способ разборки неприемлем для больших DjVu-файлов. Для облегчения этой процедуры я сделал специальную простейшую консольную программу DjVu Unbundler (275 КБ).

Сборку полученных "разобранных" одностраничных DjVu-файлов можно осуществлять как обычно - при помощи программы Document Express Editor v5.0.0 Build 16 plus (без OCR и справки) - см. вопрос № 6.

16. Что делать, если у меня ни один DjVu-просмотрщик не работает?

Отключите 2-е ядро на своём 2-ядерном микропроцессоре (Хотя бы при помощи диспетчера задач) - и всё заработает.

17. Почему не следует использовать один большой словарь на всю книгу при кодировании в DjVu?

Отвечает Cptn_Cook:

1) Если файл смотрится по сети, то ничего не отобразится, пока не загрузится весь нужный словарь. Для типичной книги, словарь имеет размер 200-300 KB, для модема это существенно.

2) Если редактировать DjVu-файл при помощи DjVuLibre, то резка и склейка очень быстро приводит к тому, что словари начинают повторяться (не трудно понять, почему). При этом, если словарь порядка 10 КБ, то это не страшно, а если 200 КБ, то уже неприятно.

3) DjVu - довольно устойчивый к ошибкам формат, но если ошибка возникает в словаре, то ни одна страница, которая этим словарем пользуется, не отобразится (читай, вся книга при pages-per-dict = 10000).

4) Книга с одним большим словарём медленнее открывается в DjVu-просмотрщике - это заметно на глаз и вызывает раздражение у пользователя.

5) Большой словарь потребляет слишком много оперативной памяти - при работе с WinDjView.

На самом деле, совершенно не обязательно делать pages-per-dict = 10000. Такое значение дает выигрыш в размере файла 20%, но если использовать pages-per-dict = 20, то выигрыш (по сравнению с pages-per-dict = 10) 10%. Похоже, это неплохой компромис. Между прочим, any2djvu использовал pages-per-dict = 20, но потом поменял на pages-per-dict = 10, наверное потому, что в этом случае обработка быстрее.

18. Как распечатать файл формата DjVu?

Скачайте и установите программу WinDjView. Откройте в ней DjVu-файл, выберите в меню пункт "Файл" - "Печать" и распечатайте его.

19. Как напрямую преобразовать Word'овский Doc-файл в файл формата DjVu?

Есть 2 варианта:

1. Установите программу "виртуальный DjVu-принтер" и, открыв Doc-файл в Word'е, отправьте его на печать на этот виртуальный принтер.

20. Как закодировать множество одностраничных графических файлов в соответствующее множество одностраничных DjVu-файлов?

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

Если Вам это всё-таки действительно очень нужно, то используйте Document Express Enterprise 5.1 (можно Light Edition).

21. Как закодировать в DjVu цветные журналы?

Кодируйте обработанные сканы целиком либо в DjVuPhoto (при помощи DjVu Small или MiniDjVu Plus), либо в PDF-JPEG2000 (Adobe Acrobat Pro).

22. Как осуществлять полнотекстовый поиск по страницам множества DjVu-книг?

2. Архивариус 3000 (коммерческая программа). Очень хороший вариант.

Копирайт и электронные библиотеки

Путин разобрался с интернет-библиотеками (С 28.07.2004 вступил в силу новый "Закон об авторских и смежных правах")

. Автора! (Е. Любарская) (Очень важная статья - разъяснение текущего состояния эл. копирайта - прочитать обязательно!)

На пути к абсолютному знанию - 2 (Общие рассуждения о возможности и необходимости изменения российского копирайтного законодательства с целью учёта существования электронных библиотек)

Автор: monday2000.

Дата создания: 3 ноября 2006 г.

Последнее обновление: 4 апреля 2011 г.

Примечание: На этой странице всегда находятся самые свежие и актуальные версии наиболее важных DjVu-программ.

У меня есть файлы DjVu. Мне нужно наложить на них текстовый слой, и для этого мне нужна какая-нибудь подходящая программа. При этом нужно:

  1. Вычитать и проверить текст (если программа сама будет обращаться к OCR-движку).
  2. Чтобы программа совместила текст с изображением, но при этом чтобы я мог удостовериться, что это сделано правильно и подвинуть в случае необходимости. Таким образом, утилита должна быть с графическим интерфейсом.

Подскажите такую программу или программы, кто может.



Во-первых, можно поклянчить какой-нибудь trial у нынешних владельцев. Я не в курсе, чем какой из пакетов занимается, но OCR на странице упомянут.

О результатах обязательно расскажешь и внесёшь в L.O.R. Wiki :)


>нынешних владельцев
О! А я-то думал, почему на Lizardtech больше про DjVu ничего нет. Сейчас посмотрю.

>djvusmooth
Уже попробовал. У него функционал ну очень ограничен. В частности, я так и не смог ни создать текстовый слой в документе, где его нет, ни даже добавить или удалить строки, смог только перемещать, изменять размер и редактировать текст.

>О результатах обязательно расскажешь и внесёшь в L.O.R. Wiki :)
Ну, если будет что рассказывать.


О! А я-то думал, почему на Lizardtech больше про DjVu ничего нет.

А между прочим, я когда новость о выходе Djview 4.7 писал, об этом упомянул :)

Уже попробовал. У него функционал ну очень ограничен.

>>но это будет так больно и тяжело.

А ещё на ЛОРе ругают, когда кто-то берётся пилить очередной велосипед. Очевидна отрасль, где их не хватает.

>>Ну, если будет что рассказывать.


Тут ОЧЕНЬ нужны велосипеды.


Главное же открытый типа. То есть ничего не мешает как будто.


Мать моя женщина.

Скачал триал версии Enterprise. Думал, что он самый полный. Ан нет: там набор программ вообще другой, чем в Professional. Пришлось скачать Professional, там редактор есть.

И даже В ЭТОМ РЕДАКТОРЕ нет возможности нормально манипулировать текстовым слоем. Даже функций djvusmooth нету.

Зато OCR там нормальный.

Трындец. Может, я чего-то не понимаю, может, это на самом деле никому не надо?

Ладно, сейчас будем городить велосипед из веток и листьев.


И даже В ЭТОМ РЕДАКТОРЕ нет возможности нормально манипулировать текстовым слоем. Даже функций djvusmooth нету.

>>Зато OCR там нормальный.

Кстати, там под Linux версия нативная или как, я по страницам загрузки пробежался, чего-то увидел только версии под винду.

>>Ладно, сейчас будем городить велосипед из веток и листьев.

Над djvused будешь GUI водружать?


>А подробней?
Ну, распознал довольно четко и позиционировал хорошо. Процент ошибок не считал, но явно лучше, чем у Cuneiform (с FineReader'ом не сравнивал).

>Кстати, там под Linux версия нативная или как, я по страницам загрузки пробежался, чего-то увидел только версии под винду.
Я тоже не нашел нативных версий под Linux. Правда, в списке системных требований к SDK указана возможность работы под Линуксом, но для всего остального только Windows. Хотя, может быть, если им написать, они из-под прилавка вынут.

>Над djvused будешь GUI водружать?
Ну, может быть, удастся запилить добавление элементов в djvusmooth, но если никак, то буду как-то совмещать djvused и djvusmooth.


>как-то совмещать djvused и djvusmooth.
Собственно, они уже как-то совмещены, осталось понять насколько и что с этим делать.




Предположим, что фотографии или отсканированные копии страниц у вас уже есть. Поместите их в одну общую папку, затем скачайте конвертер по этой ссылке:

Откройте архив и запустите файл «Djvu Small Mod.exe». Выберите операцию кодирования, затем нажмите кнопку «Открыть файлы».

Выберите операцию кодирования

Поддерживается создание djvu из картинок в формате jpg, bmp, gif, tiff, pnm и из растровых файлов. Выделите все изображения в папке (чтобы сделать это быстро, нажмите CTRL+A), и откройте их.

Выделите все изображения в папке

Затем выберите, куда сохранить создаваемый файл и придумайте ему имя. Чтобы начать процесс конвертации нажмите кнопку «Кодировать».

Как создать DjVu файл

Процесс не долгий, на современном ПК на обработку 50 страниц уходит в среднем 1 секунда. В конце, если не убирать галочку с опции «показать результат», будет предложено открыть получившуюся книгу в одной из программ для чтения DjVu файлов, установленной на компьютере.

Как создать файл Djvu

1) DjVu Small

Программа для создания файла djvu из картинок формата bmp, jpg, gif и пр. Кстати, программа может не только создавать, но и извлекать из djvu все графические файлы, которые находятся в сжатом формате.

Пользоваться ей очень просто. После запуска программы, вы увидите небольшое окно, в котором за несколько шагов можно создать файл djvu.

1. Для начала нажимаете на кнопку Open Files (красная единичка на скрине ниже) и выбираете те картинки, которые вы хотите запаковать в данный формат.

2. Вторым шагом выбираете место, где будет сохранен созданный файл.


3. Выбираете, что сделать с вашими файлами. Document — > Djvu — это преобразовать документы в формат djvu; Djvu Decoding — этот пункт нужно выбирать, когда вы вместо картинок в первой вкладке выбираете файл djvu, чтобы его извлечь и получить его содержимое.

4. Select encoding profile — выбор качества сжатия. Лучшим вариантом будет эксперимент: взять пару картинок и попробовать их сжать, если качество вас устроит — то затем можно и всю книгу сжать с этими же настройками. Если же нет — то попробовать увеличить качество. Dpi — это количество точек, чем выше это значение — тем лучше качество, и тем больше получается размер исходного файла.

5. Convert — кнопка, которая запускает создание сжатого файла djvu. Время на эту операцию будет зависеть от количества картинок, их качества, мощности ПК и т.д. На 5-6 картинок ушло примерно 1-2 сек. на среднем по мощности компьютере на сегодняшний день. Кстати, ниже приведен скриншот: размер файла получился примерно 24 кб. из 1мб исходных данных. Нетрудно посчитать, что файлы были сжаты в 43* раза!


2) DjVu Solo

Еще одна неплохая программа для создания и извлечения файлов djvu. Многим пользователям она кажется не такой удобной и наглядной, как DjVu Small, но все равно рассмотрим процесс создания файла и в ней.

1. Открываете файлы картинок, которые вы отсканировали, скачали, взяли у друзей и пр. Важно! Сначала откройте всего лишь 1 картинку из всех желаемых конвертировать!


Важный момент! Многие не могут открыть картинки в этой программе, т.к. по умолчанию она открывает файлы формата djvu. Чтобы открыть другие графические файлы, просто поставьте в графе типы файлов значение как на картинке снизу.

2. После того, как ваша одна картинка была открыта, можно добавить остальные. Для этого в левом окне программы вы увидите столбик с маленьким превью вашей картинки. Щелкните по ней правой кнопкой мышки и выберите пункт «Insert page after» — добавить страницы (картинки) после этой.


Затем выделяете все картинки, которые хотите сжать и добавляете в программу.


3. Теперь жмете на file/Encode As Djvu — произвести кодирование в Djvu.


Далее просто нажимаете на «OK».

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


Теперь вам необходимо выбрать качество, с которым программа сожмет картинки. Лучше всего, его подобрать экспериментально (т.к. у многих вкусы разные и давать конкретные цифры бесполезно). Просто оставьте сначала по умолчанию, сожмите файлы — затем проверьте, устроит ли вас качество документа. Если не устроит — то затем увеличьте/уменьшите качество и опять проверьте и т.д. пока не найдете свой баланс между размером файла и его качеством.


Файлы в примере были сжаты до 28кб! Довольно неплохо, особенно для тех, кто хочет сэкономить место на диске, или у тех у кого медленный интернет.


Способ 2 – создание djvu в процессе сканирования

Если дома есть сканер, нет смысла предварительно фотографировать каждую страницу, можно их сканировать и преобразовывать в DjVu «на лету». Правда для этого потребуется уже другая программа, которая работает только на Windows XP и 7 — DjVu Solo (на восьмерке не пробовали, а вот на десятке она не запустилась).

, установите и запустите. На верхней панели найдите значок сканера и нажмите на него. Откроется стандартная утилита сканирования.

значок сканера

Если ничего не происходит, через меню зайдите в «Файл» — «Выбрать источник», и из списка устройств выберите свой сканер. Если там пусто, проверьте, установлены ли драйвера, идущие в комплекте с устройством? Попробуйте переустановить их, затем перезапустить программу.

После сканирования через утилиту, изображение откроется в отдельном окне на рабочем столе Solo. Через меню зайдите в «Файл» — «Преобразовать в DjVu», затем сохраните созданный файл. Это еще не книга – только одна ее страница.

Далее алгоритм действий такой: заново нажимаете на значок сканера на верхней панели программы, сканируете новую страницу, сохраняете и опять преобразовываете в DjVu. Созданный файл откроется в новом окне – то есть теперь в программе Solo будет 2 открытых окна с файлами. Вот это новое окно закройте и перейдите к первому окну. Затем через меню зайдите в «Правка» — «вставить страницы в конец книги» и вставьте к первому файлу второй.

Затем отсканируйте третью страницу, и полученный файл опять добавьте в конец книги, то есть к файлу из первого окна. Тоже самое сделайте с четвертой и всеми последующими страницами по очереди, пока книга не закончится.

DjVu Editor 6.0 Pro + Rus



Исключительно по просьбам пользователей CWER.ws
Document Express with DjVu — группа приложений, позволяющих создавать, управлять, записывать и распространять файлы в формате DjVu. Document Express Editor — одна из наиболее распространенных программ для создания и просмотра DjVu-документов на локальном компьютере.

Рассмотрим коротко ее основные возможности и кратко опишем принцип создания DjVu-документов.

В Document Express Editor, можно открывать и конвертировать файлы таких форматов: DjVu (*.djvu, *.djv), BMP (*.bmp), GIF (*.jpg), JPEG (*.jpg, *.jpg), PNM (*.pnm, *.ppm, *.pgm, *.pbm), TIFF (*.tiff, *.tif), PICT (*.pict).


Для создания DjVu-файла нужно отсканировать страницу (меню “Файл” -> “Сканировать”), либо открыть уже готовое изображение поддерживаемого формата (меню “Файл” -> “Открыть”). Если в документ должен быть многостраничный, то при помощи меню “Правка” > “Добавить страницы до…” или “Правка” > “Добавить страницы после…” вставить в документ до или после открытого изображения остальные изображения.

Затем при помощи меню “Файл” -> “Сохранить как…” сохранить документ в формате DjVu.

При сохранении файла программа предложит выбрать настройки: распознавать ли текст; профиль; разрешение (от 100 до 600 dpi); качество текста (возможны 5 уровней от «агрессивного», т.е. со значительной потерей до «без потери»), сохранять изображения каждое в отдельном или все в одном файле.

Так называемый профиль – это тоже настройки, только пользователь выбирает тип документа, а программа автоматически подстраивается под тип изображения.

Всего доступны 7 профилей:

  1. «Нормальный» – для большинства отсканированных печатных документов
  2. «Электронный» – для растровых изображений электронного происхождения, таких, как скриншоты и т.п.
  3. «Фото» — для фотографий. При этом функция OCR не работает, поэтому функция поиска и копирования текста в созданном документе не будет работать.
  4. «Битональный» — для черно-белых изображений
  5. «Рукопись» — для старых или рукописных изданий без рисунков или фотографий
  6. «Рисунок» — похож на «Рукопись», но с поддержкой рисунков и фотографий
  7. «Карта» — похож на «Рисунок», но с лучшей поддержкой перевернутого текста

Этими настройками, как правило, действительно можно добиться удовлетворительного результата. После того, как настройки заданы, нужно выбрать место на локальном диске и сохранить файл в формате DjVu. После сохранения добавляется возможность подсвечивать области в документе, вставлять внутренние (для самого документа) и внешние гиперссылки и т.п. Так же если при создании DjVu-документа не было задано распознавание текста, это можно сделать позже. Document Express Editor 6.0.1 умеет распознавать около 100 языков, в том числе русский и украинский.

Вообще вопрос о необходимости добавления текстового OCR-слоя при создании DjVu-документа является дискуссионным. Помимо того, что процедура распознавания текста занимает значительное время, OCR-слой увеличивает размер DjVu-файла. Однако наличие текстового слоя очень удобно при дальнейшей работе с электронной книгой. Во-первых, появляется возможность копировать нужные фрагменты текста для последующей обработки; во-вторых – искать по ключевому слову или выражению в самом DjVu-документе и среди всего множества DjVu-документов как на локальных дисках, так и в сети. Функция поиска по ключевому слову присутствует практически во всех DjVu-программах.

Так как многие DjVu-документы содержат текстовый OCR-слой, у некоторых пользователей создается впечатление, что их можно конвертировать в формат DOC, или подобный. Однако формат DjVu – это графический, а не текстовый формат. Поэтому напрямую конвертировать DjVu-документ в формат «Word-processor» – подобного редактора нельзя. DjVu-файл может лишь содержать встроенный OCR-слой – простой текст без какого-либо форматирования. Используя буфер обмена этот текстовый слой можно перенести в текстовый редактор и вручную форматировать.

В архиве находится Lizardtech Document Express with DjVu Professional Edition 6.0.1 + русификатор для Document Express Editor.

Ликбез по DjVu

Чуток истории

DjVu (произносится "дежавю") как формат хранения данных был разработан компанией AT&T в середине 90х. Видимо, достойного применения всему этому не нашлось тогда, потому как вскоре все права на использование были проданы малоизвестной Lizardtech. Она, в свою очередь, причесала набор программ для работы с этим форматом и выставила все на продажу. Поскольку цена была просто заоблачной, продажи, по всей видимости, просто знатно обломились. В конце концов часть исходников была открыта вместе с описанием самого формата. В настоящее время Lizardtech занимается географическими картами, форматом хранения и программами для манипуляций с ними, но это уже немного другая тема.

Еще один велосипед?

  • Размер PDF файла получается в 3-10 раз больше при том же разрешении
  • Совсем не факт, что PDF легко и просто откроется на любом компьютере, Adobe постоянно обновляет формат и вероятнее всего придется постоянно обновлять Acrobat Reader для просмотра
  • Горе умельцам приходится уменьшать сканы чтобы размер PDF файлов не был большим. При этом о нормальной печати или OCR говорить просто не приходится. Да и на экране все выглядит малочитабельно
  • Отсутствие возможности нормального поиска в таких PDF (существующие костыли не рассматриваю)
  • Глупые ограничения на PDF файлы типа 'нельзя печатать' etc

DjVu свободен от всех перечисленных недостатков. Размер документов получается небольшим, с прекрасным разрешением (большинство книг отсканированы в 300 или даже 600dpi). Нужно распечатать - пожалуйста. Хочется от'OCR'ить - легко. Поиск - работает, если при создании добавлен текстовый слой (легко добавить и потом без перепаковки всех страниц). Причем для хранения текстовой информации всегда и везде используется utf8, никакой чехарды с кодировками устраивать не нужно.

Чем читать DjVu файлы?

  • Unix. В DjVuLibre есть plug-in для browser'а и самостоятельная программа для промотра DjVu файлов - djview. Компилится и ставится как обычно. Работает вполне себе нормально. В комплекте ставится набор утилит для кодирования/декодирования DjVu файлов, печати и прочих вещей
  • Windows. Для browser'а есть отличный plug-in от Lizardtech, находится тут. Из самостоятельных просмотрщиков можно попробовать WinDjView

Запаковка в DjVu

  • Unix. Особого выбора для создания DjVu файлов нет, только DjVuLibre. Да, в ее составе есть кодеры и причем несколько разных, все в принципе работает без глюков, но a) размер файлов получается больше чем мог бы быть, б) нет нормального OCR софта, и, как следствие, невозможно добавить OCR слой в DjVu файл.
    Для быстрой перегонки PDF в DjVu в DjVuLibre есть отличная утилита djvudigital.
  • Windows. Нормальные результаты получаются при использовании DjVu Solo 3.1 или, если удастся найти, DjVu Pro 4.x. Если есть ABBYY FineReader (вполне подойдет и evaluation версия, у которой закончилось время демо-работы), можно легко добавить OCR слой, который позволит использовать поиск и индексацию в DjVu документах. Я пользуюсь DjVu Tools для этого.

Технические аспекты

Думаю что для большинства технические подробности будут неинтересны и им впору будет нажать кнопочку 'Back'. Для оставшихся расскажу чуть про внутренности формата.

Вся информация внутри DjVu представлена в виде чанков (chunks). Сам файл является большим чанком, внутри которого находятся чанки меньшего размера. Файл может быть одно- и многостраничным, в случае многостраничного файла в начало добавляется каталог страниц. Нужно отметить, что количество чанков внутри файла никак не соразмерно с количеством страниц, потому что для рендеринга страницы может использоваться несколько чанков.

Что же нового придумано в формате DjVu?
В отличие от GIF/JPEF/PDF и прочих страница документа может разбиваться на несколько слоев. В самом общем случае это foreground, backgroung, маска разделения этих двух слоев и дополнительная текстовая информация. Процесс кодирования это своего рода искусство разделить отсканированный документ на слои и определить что попадет в foreground, что в background в результате сжатия. И самая сложная часть алгоритмов - именно в этом. Поэтому, как я уже говорил, коммерческие кодеры обычно работают лучше DjVuLibre, потому как алгоритмы там более отточенные.

Что такое разделение на слои и зачем такие сложности? Дело в том, что книги (и соответственно их сканы) содержат информацию, которую нужно обрабатывать совершенно по-разному. Например, для текста важно сохранить максимальное разрешение буковок, при минимальной информации о цвете, для фотографий же такой подход неприемлем ввиду большого объема в результате такого подхода и так далее. DjVu же разделяет сканы на слои, к которым применяются принципиально разные методы сжатия. При просмотре слои последовательно рендерятся и объединяются в конечной картинке.

Z-coder.
Арифметический кодер/декодер который является основой всех преобразований в DjVu. Принцип действия похож на тот, что применяется в алгоритме BZIP2. Подробности можно почитать в [4]. Этот кодек применяется как фильтр - выходной при создании чанков и входной перед рендерингом слоев.

JB2 encoder.
Применяется для упаковки bitonal данных, таких как текст, черно-белые рисунки и пр. Может хранить маску, т.е. информацию о том, что попадает в background, а что в foreground. Вся информация хранится в виде библиотеки (dictionary) форм (shape) плюс положение каждого объекта на плоскости страницы. Сами библиотеки могут быть общими для нескольких страниц. Легче всего это представить таким образом. К примеру есть отсканированный текст, кодировщик определяет похожие буковки, скажем все 'а', 'б' etc и создает библиотеку, в которой находится информация о каждой букве (форме), а потом просто информация, что 'a' находится в таком-то и таком-то месте, 'б' в таком-то и так далее. Поскольку, как я говорил, словарь может быть расшарен между страницами, упаковка получается зверская. В дополнение к всему этому может быть сохранена информация о цвете форм, то есть если есть, скажем, красная 'а' и синяя 'a' в скане, то в библиотеку попадет только одна 'а', будет записана информация о местоположении двух форм 'а' и о их цвете. Цвет хранится в индексированном виде, точно так же, как и в GIF файлах.

Сигнатура чанка для JB2 слоя - 'Sjbz', может ссылаться на внешнюю библиотеку форм - 'Djbz' чанк. Информация о цветах форм находится в чанках 'FGbz'.

Все такие чанки пожаты Z-coder'ом.

IW44 encoder.
Wavelet кодер. Применяется для упаковки фотографий, backgroung. Foreground цвета тоже могут быть упакованы таким же образом. Принцип упаковки такой же как, в формате JPEG 2000. Подробности в [3]. Может быть упакована как цветная, так и b/w информация. Информация о background обычно сохраняется с меньшим (как правило в 3 раза) разрешении, чем JB2. Если foreground упакован таким способом, то 'Sjbz' маска определяет, что попадает в foreground, а что нет. Информация и цвете кодируется не в RGB, а YCbCr (яркость плюс разностные каналы, как в телевидении).

Сигнатура чанка для background слоя - 'BG44', foreground - 'FG44'.

Опять же, все такие чанки пожаты Z-coder'ом.

Прочая информация.
Текстовый слой - 'TXTz'. Распознанный текст совместно с его расположением на странице. Информация о расположении может быть детализована до слов или до строчек. Этот слой позволяет использовать поиск с подсветкой найденного на странице и индексировать DjVu документы.
Аннотации - 'ANTz'. Ссылки и информация о том, какие слои выводить по умолчанию при открытии файла.

'TXTz' и 'ANTz' пропущены через Z-coder.

Кроме того может быть закодирована информация о кодере (чанк 'CIDa') и прочее. Четкого стандарта нет, но эта информация в принципе не нужна для нормального декодирования.

  • Максимальный размер страницы 65535x65535px
  • Отсутствие контрольных сумм внутри формата и чанков (битый файл все равно распакуется, но в непотребную кашу). На практике - лучше заархивировать DjVu файлы, что гарантирует их целостность
  • Отсутствие криптования и ограничений на использование информации (поборники DRM тихо курят в сторонке). Ну это скорее не ограничение, а плюс. Насколько мне известно, были попытки сделать некий Secure DjVu на базе обычного, но ничего путного не получилось

Вот вкратце и все. Особо интересующихся отсылаю к исходникам DjVuLibre. Буду рад, если представленная информация помогла ответить на вопросы и разобраться в предмете.

Читайте также: