Skip to content

Latest commit

 

History

History
171 lines (130 loc) · 9.41 KB

README.rus.md

File metadata and controls

171 lines (130 loc) · 9.41 KB

makedjvu — Простой Makefile-скрипт для сборки книги в DjVu из набора страниц

Скрипт был проверен с выводом из программы ScanTailor Advanced, но, вероятно, будет работать и с любым другим набором бинарных и смешанных страниц.

Установка и требования

Просто скачайте Makefile и поместите его рядом с директорией out/, содержащей вывод из ScanTailor:

$ cd ~/MyLibrary/MyNewBook
$ ls
out/ MyNewBook.ScanTailor
$ wget https://github.com/pavrorov/makedjvu/blob/main/Makefile

Также можно склонировать репозиторий и затем скопировать из него Makefile в директорию книги:

$ git clone https://github.com/pavrorov/makedjvu.git
$ cd makedjvu
$ cp Makefile ~/MyLibrary/MyNewBook
$ cd ~/MyLibrary/MyNewBook

Требования

Для работы скрипт нуждается в следующем ПО:

При этом предполагается, что в системе доступны следующие команды: make, tr, cat, sed, identify, convert, cjb2, c44, djvumake, djvuextract, djvm.

Использование

Простое

Для того, чтобы собрать книгу в DjVu просто скомандуйте:

make

Однако перед тем, как запускать процесс стоит ознакомиться с тем, как и что будет сделано. Для этого есть команда make info:

$ make info
Book name: MyNewBook.djvu
Mixed pages: out/00-front.tif out/page-0002_1L.tif out/zz-back.tif
Cover pages: out/00-front.tif out/zz-back.tif
C44 options: (default)
CJB2 options: -lossy -clean
Mask threshold: 1%
Cover dpi: 100
Workdir: djvudir

Прежде всего она выведет имя файла будущей книги. Имя файла получается из имени директории, в которой располагается Makefile. Однако обратите внимание на то, что все пробелы в имени файла будут заменены на _. Это связано с особенностями работы make.

Следом идут списки смешанных (mixed) страниц (т. е. с иллюстрациями) и обложек (cover pages). За переднюю и заднюю обложки принимаются первая и последняя страницы вывода, если они были записаны в смешанном режиме. Бинарные обложки обрабатываются в как и любые другие страницы.

После списков особых страниц команда выводит параметры обработки. Справку по параметрам утилиты c44 см. в странице руководства c44(1), а для справки по команде cjb2 обратитесь, пожалуйста, к cjb2(1). Параметр "mask threshold" — это пороговое значение белого, которое будет используется для разделения смешанного вывода на передний и задний план.

Пожалуйста обратите внимание на то, что текущая версия Makefile не поддерживает режим "раздельного вывода" программы ScanTailore для смешанных страниц. Для разделения таких страниц на передний и задний план скрипт вместо этого использует пороговый фильтр. При этом значение порога по умолчанию равное 1% кажется вполне разумным, так как известно, что ScanTailor всегда дотягивает передний план смешанных страниц до полностью чёрного.

Следующий параметр, на который нужно обратить внимание, — это чёткость обложек (cover DPI). Тогда как все другие (включая и смешанные) страницы книги обрабатываются как есть, чёткость изображений обложек по умолчанию уменьшается. Почему? Потому что с моей точки зрения не совсем хорошо (а вернее, совсем не хорошо), когда размер файла книги получается в 3-5 раз больше того, каким он мог бы быть, только из-за наличия обложек.

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

Продвинутое

Значения по умолчанию всех перечисленных и некоторых других параметров могут быть изменены передачей аргументов командной строки. К примеру, используйте команду:

make CJB2_OPTS="-losslevel 0"

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

Другой пример: обработка директории со страницами отличной от out/, с файлами в формате PNG:

make PAGESUF=.png PAGEDIR=pngdir

Указанная команда будет искать PNG-файлы страниц в директории pngdir/.

Полный список поддерживаемых опций:

Опция Комментарий Значение по умолчанию
PAGEDIR Директория со страницами. out
PAGESUF Суффикс файлов страниц (включая точку). .tif
C44 Имя (путь) команды c44. c44
CJB2 Имя (путь) команды cjb2. cjb2
CONVERT Имя (путь) команды convert. convert
IDENTIFY Имя (путь) команды identify. identify
DJVUMAKE Имя (путь) команды djvumake. djvumake
DJVUEXTRACT Имя (путь) команды djvuextract. djvuextract
DJVM Имя (путь) команды djvm. djvm
C44_OPTS Опции c44. (без опций)
CJB2_OPTS Опции cjb2. -lossy -clean
THRESHOLD Пороговое значение белого для разделения смешанных страниц. 1%
COVER_DPI DPI для уменьшения чёткости обложек. 100
NAME Имя файла книги (без суффикса) На основе имени
текущей директории, с пробелами заменёнными на_.
FILENAME Имя файла книги. NAME + .djvu
WORKDIR Имя директории для записи промежуточных файлов. djvudir

Лицензия

makedjvu — сборка книги в DjVu из набора страниц.

(C) 2021 Павел Авроров.

Данная программа является свободным программным обеспечением. Вы вправе распространять ее и/или модифицировать в соответствии с условиями версии 2 либо по вашему выбору с условиями более поздней версии Стандартной Общественной Лицензии GNU, опубликованной Free Software Foundation.

Мы распространяем данную программу в надежде на то, что она будет вам полезной, однако НЕ ПРЕДОСТАВЛЯЕМ НА НЕЕ НИКАКИХ ГАРАНТИЙ, в том числе ГАРАНТИИ ТОВАРНОГО СОСТОЯНИЯ ПРИ ПРОДАЖЕ и ПРИГОДНОСТИ ДЛЯ ИСПОЛЬЗОВАНИЯ В КОНКРЕТНЫХ ЦЕЛЯХ. Для получения более подробной информации ознакомьтесь со Стандартной Общественной Лицензией GNU.

Вместе с данной программой вы должны были получить экземпляр Стандартной Общественной Лицензии GNU. Если вы его не получили, обратитесь к https://www.gnu.org/licenses/.