Создание DJVU книг в Linux

1. Сканирование.

Используется API (интерфейс программирования приложений) SANE (Scanner Access Now Easy) с его графической оболочкой XSane.

Ещё предлагается к использованию ScanTWAIN, но это я не пробовал.

Примечание: если в Windows основными промежуточными форматами сканообработки являются tiff и bmp, то для Linux таким форматом будет являет pnm (ppm — цветные, pgm — полутоновые, pbm — чёрно-белые).

2. Сканообработка.

Используется всеми любимый Scan Tailor, так как есть версия для Linux.

Я использую ST Enchanced, поэтому устанавливал его из исходников с официального сайта.

Для установки из исходников в систему пришлось добавить пакеты build-essential, cmake, libqt4-dev, zlib1g-dev, libjpeg62-dev, libpng12-dev, libtiff4-dev, libboost-all-dev и libxrender-dev.

Сборка осуществляется командой cmake . (c точкой).
Далее команда make. Потом — sudo make install

(Данный процесс инсталляции не предусматривает создания пункта меню)

Под wine также запускаются Scan Kromsator и Book Restorer.

3. Djvu-кодирование.

Происходит так:
— сжатие каждой страницы отдельно в зависимости от её содержания (автоматизируется)
— добавление текстового слоя (опционально)
— сборка из отдельных djvu-файлов одного общего (итогового)

Для работы нужны пакеты djvulibre-bin, netpbm и imagemagick

Установка:
sudo aptitude install djvulibre-bin netpbm imagemagick

Кодирование чёрно-белых изображений.

Для сжатия чёрно-белых изображений исходники надо перевести в формат pbm:
for file in *.tiff; do anytopnm $file | ppmtopgm | pgmtopbm -value 0.499 > ${file%tiff}pbm; done

Преобразование pbm-файлов в djvu-файлы:
cjb2 -dpi DPI ВХОДНОЙ_ФАЙЛ.pbm ИТОГОВЫЙ_ДОКУМЕНТ.djvu

Опция -dpi означает возможность варьировать dpi.

Кодирование изображений в оттенках серого.

Сканы нужно конвертировать в формат pgm:
anytopnm ИМЯ_ИСХОДНОГО_ФАЙЛА | ppmtopgm > ВЫХОДНОЙ_ФАЙЛ.pgm

Кодирование:
cpaldjvu -dpi DPI -colors КОЛИЧЕСТВО_ОТТЕНКОВ_СЕРОГО ВХОДНОЙ_ФАЙЛ.pgm ВЫХОДНОЙ_ФАЙЛ.djvu

Чем больше значение -colors (количество оттенков серого), тем больший объём имеет сжатая страница. Для не очень качественных сканов подойдёт значение 3 или 4 — этого вполне достаточно, чтобы получить пусть и бледноватую, но читабельную картинку.

Кодирование цветных изображений.

Обложки или иллюстрации для начала конвертируются в ppm:
convert ИСХОДНЫЙ_СКАН РЕЗУЛЬТИРУЮЩИЙ_ФАЙЛ.ppm

Кодирование в djvu:
c44 -dpi DPI ИСХОДНИК.ppm РЕЗУЛЬТАТ.djvu

Сборка итогового djvu-файла.

Выполняется такой командой:
djvm -c ВЫХОДНОЙ_ФАЙЛ.djvu *.djvu

Автор: Sergey Bolshakov