понедельник, 17 декабря 2018 г.

Цифровое "книгопечатание". Книга за 5 минут


Цифровая книга победно шествует по миру. Не может не радовать тот факт, что если вчера еще невозможно было найти даже упоминание о книге, то сегодня уже появилась пара-тройка электронных копий (пусть и источник их возникновения, а значит, и качество, один и тот же). Практически все доступные ныне модели читалок электронных книг (PocketBook, lBook, ORSiO) умеют работать с форматом Djvu. Ну а разработчики тех, которые пока не умеют, в ближайшее время грозятся исправить код своих прошивок и возможность эту добавить. Недалек тот час, когда djvu станет признанным международным стандартом для научно-технической литературы и сменит громоздкий PDF.
Читают книги многие, а создавать собственные почему-то спешат лишь единицы. И несмотря на обилие статей-руководств, книги почему-то получаются низкого качества, с "душком" продукта, сделанного для проформы. С одной стороны, когда книг много и нужно оперативно их перевести в электронный вид - некогда думать о качестве, лишь бы побыстрее отсканировать да скормить сканы компилятору. Но, с другой стороны, когда приходится такой книгой пользоваться - тогда уж поздно проклинать кого-то и посыпать голову пеплом. Спасение утопающих - дело рук самих утопающих.
Возможной причиной наплевательского отношения к создаваемым книгам может быть и то, что масса сил расходуется на осваивание программ-редакторов вроде ScanKromsator (далее SK), которые, несмотря на обилие функций, далеки от пользователя и к тому же зачастую работают с переменной стабильностью. Кое-кому преградой может стать размер дистрибутивов программ.
Итак, дано: необходимость быстрого создания десятка копий бумажных книг, без сканера и ПК с комплектом установленных программ. Для соответствия всем требованиям было решено использовать цифровой фотоаппарат Canon PowerShot A700 и набор программ, работающих со съемного USB-накопителя и не требующих установки. Кроме всего прочего, особенный акцент делался на малом размере дистрибутивов программ. Да не сочтет глубокоуважаемый читатель мои слова за рекламу, но фотоаппарат этот отменно проявил себя на поприще экспресс-фотографии бумажных книг. Это при том, что съемка велась с рук, без всяких дополнительных устройств вроде штативов или фиксирующих ремешков. Освещение тоже использовалось естественное - солнечный свет, который попадал в помещение через окно. Так что в условиях, которые раньше можно было считать совершенно неприемлемыми для работы, с техникой Canon все прошло просто замечательно, с минимальным количеством неудобств.
После того как книга успешно сфотографирована, настает черед программ пост-обработки. До сих пор в роли основного "разметочного" инструмента выступала уже упомянутая программа SK, известная сложностью освоения, поскольку перед тем, как запустить пакетную установку, уйма времени уходила на то, чтобы выставить настройки программы в требуемые параметры. Зачастую, из-за забывчивости, приходилось обрабатывать фотографии еще раз.
Так дальше продолжаться не могло и неизвестно чем бы закончилось, если бы не всплыл у меня в памяти разговор с товарищем, поклонником Unix-оподобных операционных систем. Речь шла о том, что в среде Linux совершенно нет адекватных средств для создания djvu-книг. Так предполагал я, а друг разрушил все мои предположения, познакомив с программой Scan Tailor. Поскольку программа эта новая и совершенно не изученная, на особенностях ее рабочего интерфейса я остановлюсь подробнее.
Утилита Scan Tailor1 (далее - ST; официальный сайт - scantailor.sourceforge.net) представляет собой инструмент для обработки отсканированных страниц, основной особенностью которого является интуитивно понятный пользовательский интерфейс. Программа является свободным ПО и распространяется под лицензией GPL. Имеются версии как для Windows, так и для GNU/Linux. Самое интересное, что уже практически два года проект этот держится исключительно благодаря одному единственному человеку - Иосифу Арцимовичу.
Работать с программой на удивление просто. Участие пользователя сведено к минимуму. После запуска программы видим окно, в центре которого выскакивает табличка с двумя пунктами: "Новый проект" и "Открыть проект". Так как мы начинаем с нуля, щелкаем по первому пункту. Сразу же предлагается определиться с рабочим каталогом. Щелкнув по кнопке "Обзор" напротив пункта "Директория ввода", выбираем папку, в которой хранятся наши необработанные фотографии. По умолчанию, обработанные файлы будут сохраняться в подпапке out родительской директории. Если вы хотите изменить место, в котором будут сохраняться рисунки после обработки, - сделать это нужно во время создания проекта (щелкнув по кнопке "Обзор" и задав нужное местоположение). Если выбранная директория содержит графические файлы подходящего формата - они немедленно станут видны в окне "Файлы в проекте".
Стоит отметить одну не совсем приятную особенность программы ScanTailor. После создания проекта удалить из него файлы не представляется возможным. Поэтому если в выбранной вами директории присутствует что-то лишнее, лучше всего файлы эти выделить (правым кликом мышки, с зажатой клавишей Ctrl) и, нажав на кнопочку "<<", перенести в раздел "Файлы не в проекте". Возможности предпросмотра нет, поэтому определиться с тем, что нужно обрабатывать, а что нет, лучше всего в Проводнике Windows, выбрав режим просмотра "Эскизы страниц", запоминая (а лучше записывая) названия требуемых фотографий. Нажимаем ОК и ждем, пока программа сформирует новый проект.
В случае работы со страницами, полученными с цифрового фотоаппарата, может потребоваться изменение стандартного разрешения (для большинства цифровых мыльниц значение это равно 72 DPI, что, безусловно, недостаточно для создания качественной цифровой книги). Поэтому щелкаем по пункту с размером наших фотографий, в меню DPI выбираем значение 300х300 и нажимаем кнопку "Применить". Как показывает практика, для абсолютного большинства пользователей такого разрешения будет достаточно. Ничего страшного не случится, если выбрать и 600х600, но придется мириться с увеличением размера конечного продукта.
После того, как разрешение приведено в порядок, рабочее окно программы принимает вид как на рисунке 3. В окне слева имеется шесть пунктов, по количеству доступных инструментов обработки:
  1. Исправление ориентации
  2. Разрезка страниц
  3. Компенсация наклона
  4. Полезная область
  5. Макет страницы
  6. Вывод
После щелчка по любому из пунктов ниже панели инструментов становится доступным окно параметров каждого инструмента. Справа от названия инструмента видна круглая кнопка, похожая на кнопку Play WindowsMediaPlayer. Этой кнопкой запускается пакетный режим обработки файлов. По умолчанию страницы обрабатываются в соответствии с изначально заложенной в программу схемой.
Если вы каким-то образом модифицировали исходную картинку (повернули, разрезали или расширили поля) и хотите в дальнейшем применить тот же шаблон для всех остальных фотографий - придется воспользоваться меню "Область применения". Функция эта в том или ином виде присутствует в параметрах каждого из инструментов и может состоять из следующих пунктов:
  • Применить только к этой странице
  • Применить ко всем страницам
  • Применить к этой странице и всем последующим
  • Применить к каждой второй странице в диапазоне
  • Применить к выделенным страницам
По умолчанию обработка проходит по третьему сценарию. Пункт "Применить к каждой второй странице в диапазоне" укажет выбранному инструменту на то, что нужно обрабатывать каждую вторую фотографию, то есть либо каждую четную, либо каждую нечетную, в зависимости от того, четная или нечетная текущая страница. Ну и последний пункт позволяет применить инструмент к страницам, выделенным пользователем.
Теперь пора перейти непосредственно к описанию рабочих инструментов. Первым у нас идет пункт "Исправление ориентации". На данной стадии можно повернуть скан на угол, кратный 90 градусов (90/180). Стадия эта ручная, то есть программа не умеет сама определять правильную ориентацию сканов - это должен сделать пользователь. Это также означает, что запускать пакетную обработку на данной стадии бесполезно - будет пустой проход. Кнопки с желтыми стрелками поворачивают скан на 90 градусов по или против часовой стрелки. Зелёная стрелка показывает, куда в данный момент повернут скан. Кнопка "Сброс" возвращает скан в исходное положение - зеленая стрелка будет указывать вверх.
Вторым инструментом обработки является "Разрезка страниц". На этой стадии определяется, нужно ли, и если нужно, то как, разрезать скан. Тип разреза слева направо:
  • Одностраничный скан без каких-либо частей соседней страницы.
  • Одностраничный скан, в который попала часть соседней страницы.
  • Двухстраничный скан.
Тип разреза определяется автоматически, хотя может быть задан и вручную. Разделительная линия также может определяться автоматически или задаваться вручную, но ее нельзя применить к другим страницам. В случае если выбран второй тип разреза, появится возможность вручную указать полезную область: слева или справа от линии разреза.
Далее у нас идет "Компенсация наклона". На этой стадии определяется угол, на который надо повернуть страницу, чтобы строки стали строго горизонтальными. Поскольку компенсация делается простым вращением, то искривления, присущие сканам с цифрового фотоаппарата, исправить нельзя, делать это нужно с помощью BookRestorer (далее BR), о чем читайте ниже. Угол наклона определяется автоматически, но имеется возможность задать его и вручную. Изображение можно вращать, перетаскивая мышкой рукоятки, которые имеют форму шариков и расположены по краям. Здесь можно явно задать угол поворота в градусах. Положительные углы будут вращать изображение против часовой стрелки, отрицательные - по часовой стрелке. Для тонкой подгонки угла удобно кликнуть мышкой по текстовой части поля ввода угла, после чего использовать колесо мыши для его подгонки.
Одним из самых важных инструментов является "Полезная область". На этой стадии определяется область с "полезным" содержанием (залито цветом). Нужен этот пункт для того, чтобы определить размеры страницы на выходе. К полезной области будут добавлены поля, и внешняя граница этих полей как раз и задаст размеры выходного файла. Кроме того, автоматически удаляется весь мусор с краев и линии сгиба (раньше этой работой приходилось заниматься вручную, с помощью инструментов все той же BR). В большинстве режимов поля заливаются белым. Если область определилась неверно, можно поправить ее вручную, потянув мышкой за ее край. Бывает также, что на странице, где совсем нет полезного содержимого, ST все равно находит полезную область, или, наоборот, не находит там, где она есть. В таком случае можно вручную создать / удалить область, кликнув правой кнопкой мыши по изображению и выбрав нужный пункт меню.
Предпоследний инструмент - "Макет страницы". На этой стадии к полезной области добавляются поля. Есть два типа полей - жесткие и мягкие. Жесткие поля задаются пользователем и определяют физический размер страницы будущей книги. Жесткие поля можно регулировать визуально, перемещая линии-ограничители (внешнюю либо внутреннюю), а можно задать вручную, вписав требуемые числовые значения. Мягкие поля добавляются автоматически, чтобы довести размер страницы до размера других страниц. Здесь может возникнуть неприятный момент. Если в открытом проекте страницы имеют различный размер (к примеру, врезка формата A4 в книге форматом B5), то одна большая страница вызывает появление мягких полей у всех остальных страниц, если только для них не отключено выравнивание. Параметры выравнивания как раз и определяют, добавлять ли мягкие поля, и если добавлять, то с каких сторон. Поэтому рекомендую еще на этапе создания проекта разделить фотографии страниц с разными размерами и обрабатывать их тоже раздельно (помним, что удалить файлы из уже созданного проекта нельзя). Все параметры на стадии "Макет страницы" задаются вручную либо берутся значения по умолчанию. Таким образом в любой момент времени известны все параметры для всех страниц.
Ну и, наконец, последний инструмент, который определяет внешний вид и формат создаваемых файлов, - "Вывод". На этой стадии создается и записывается на диск окончательное изображение страницы. Результат также отображается в центральной области программы. В отличие от других стадий, стадия "Вывод" становится доступной только после прохождения всеми страницами стадий "Полезная область" или "Макет страницы". Так происходит потому, что размеры страниц на выводе зависят друг от друга. Скажем, если попалась крупная страница, то у всех остальных наращиваются поля (о чем я уже упоминал при рассмотрении инструмента "Макет страницы"). Поэтому важно знать конечные размеры страниц, а узнать это можно, только обработав их упомянутыми инструментами. Наиболее важными параметром данного инструмента является возможность выбора режима кодирования страниц. Имеется три предустановленных значения:
  • Черно-белый
  • Смешанный
  • Цветной/Серый
В черно-белом режиме программа интеллектуально бинаризирует (преобразовывает в однобитный цвет) фотографии. Опция "Удалять пятна" отвечает за ретуширование неугодных полос и точек. При плохом качестве съемки или большом количестве мелких деталей (особенно в математических формулах) могут затираться мелкие значки и индексы. Поэтому будьте бдительны. Смешанный режим используется для случаев, когда обычный текст присутствует наряду с полутоновыми картинками. Программа автоматически определяет наличие рисунка и сохраняет его в режиме, аналогичном Цветной/Серый. Текст сохраняется в однобитном цвете. Ну и, наконец, последний режим используется для всевозможных цветных иллюстраций и врезок. Лучше сразу поставить галочки около пунктов "Залить поля белым" и "Выровнять освещение". Эти опции нормализуют цвет фона, доводя его до белого, а также нормализуют контраст, увеличивая его в затененных областях. Применять данный режим имеет смысл в случаях, когда вам важна правильная цветопередача рисунка и хотелось бы видеть его в книге минимально измененным. После запуска пакетного конвертирования в рамках данного инструмента фотографии последовательно проходят все стадии, обрабатываясь в рамках установленных по умолчанию значений (если значения эти не установлены пользователем), и на выходе мы получаем уже практически готовые к компиляции в книгу материалы.


А теперь посмотрим, как все это выглядит на практике. Первым делом загружаем наши фото из цифрового фотоаппарата в ST. Изменяем разрешение. Если страницы не требуют поворота, сразу переходим ко второму инструменту и разрезаем сканы на страницы. Пакетный режим можно запускать, только если вы уверены в том, что все фотографии однотипны.
После окончания процедуры обязательно следует просмотреть сырой материал на наличие неправильной разрезки: там где нужно, двигая мышкой синюю линию резака, исправляем огрехи. Если все нас устраивает - переходим сразу к пункту "Полезная область" и повторяем режим пакетной обработки.
В большинстве случаев программа сама правильно распознает область с текстом. Исключение составляют только слишком темные или пожелтевшие фотографии. Если вам пришлось работать именно с такой "продукцией" - самое время вспомнить материал, опубликованный в "КВ" №9'2009. Там был описан алгоритм создания пакетного обработчика фотографий в Adobe PS. Повторяться не буду, но приведу последовательность операций, опираясь на которую, не составит труда скомпилировать свой обработчик (делать это нужно один раз). Для наших целей последовательность можно и нужно упростить, что никак не скажется на качестве конечной цифровой копии книги:
  1. Image-Convert to Gray-Scale, переводим фото в режим градаций серого
  2. Image-Adjustments-Levels, жмем кнопку Auto, тем самым утолщая тонкие линии на фото
  3. Filter-Other-HighPass (значение Radius = 9.9 пиксела), выделяем резкие контрастные переходы, которыми и являются границы букв, а также чистим мелкий мусор
  4. Save (значение TIFF LZW Compress), сохраняем картинку
Создаем дроплет (File-Automate-Create Droplet...) и кладем его рядом с папкой, где хранятся изображения, ожидающие обработки. Чтобы выровнять уровни, достаточно папку с изображениями перетянуть на ехе-шник созданного пакетного файла-обработчика. Кстати, если сами вы определить потребность фотографий в "модернизации" не в силах, за вас это сделает ST, просто отказавшись правильно разрезать страницы или определять полезную область. Если такой факт имеет место быть - это сигнал, что без обработки PhotoShop не обойтись. Если все устраивает - переходим к финальной стадии работы с нашим "Портным" (Tailor в переводе с английского означает "портной").
Выбираем инструмент "Вывод" и прогоняем режим пакетной обработки на настройках по умолчанию. Затем проверяем страницы, где требуется - меняем формат вывода с "черно-белый" на "серый" или "цветной/смешанный". Последнее может потребоваться, если в книге присутствуют цветные или серые иллюстрации, которые программа не совсем адекватно преобразовала, тем самым испортив качество. После того, как все операции успешно проведены, в папке Out сохранились обработанные страницы. Вывод осуществляется в формат TIFF. В режиме "Черно-белый" - со сжатием G4Fax; в остальных режимах - со сжатием LZW.
Приступаем к части второй. Так как предварительные сканы были получены с помощью цифрового фотоаппарата, то с высокой долей вероятности можно сказать, что 90% страниц имеют перекос. Для его исправления воспользуемся проверенным инструментом - уже знакомой нам программой BR. Cоздаем новый файл проекта (Ctrl+N) и туда же загружаем файлы, обработанные ST. Выделяем все файлы (комбинацией Ctrl+A). В "Панели реставрации" (Restoration) программы щелкаем по значку "Коррекция геометрии" (Geometric Correction), где активируем все кнопки, кроме той, на которой изображен двухстраничный разворот. Жмем ОК, дожидаемся окончания операции. Теперь меню "Файл" - "Публикация" (File - Publish).
Пришло время остановиться и оглянуться назад, подумать, а есть ли среди фотографий, прошедших обработку, страницы с иллюстрациями. Если таковых нет, то смело в графе "Тип файлов" выбираем "G4-compressed TIFF" и жмем "Сохранить". Если же цветные или серые картинки присутствуют, то компрессия в G4 может их безвозвратно испортить. Поэтому возвращаемся в основное окно программы, проматываем перед глазами список страниц и записываем (или запоминаем) номера страниц, которые нужно сохранять в формате "TIFF LZW-compressed" (для цветных рисунков) или "TIFF LZW-compressed 4bits" (для рисунков в градациях серого). Возвращаемся к меню публикации результатов. В закладке "Страницы" выбираем уже не "Все", а "Номера", где и вводим ранее записанные нами значения. Получается сохранение в два захода. В первый сохраняем цветные/серые иллюстрации (TIFF LZW), во второй - черно-белые (TIFF G4) или наоборот. Кстати, возможность работы со сжатым цветным TIFF-ом появилась только в последних версиях BR.
Теперь дело за малым - сформировать и скомпилировать саму книгу. Процессом компиляции у нас издревле заведовал "монстр" от LizardTech - DocumentExpressEnterprise (далее - DEE), размер которого, в зависимости от ревизии, мог достигать 200 мегабайт. И самое обидное, что скачиваем-то мы, по большому счету, только дополнительные языки распознавания (чешский, немецкий и так далее), которыми не пользуемся. В ранних статьях я подробно описывал процесс добавления OCR-слоя и тогда уже становилось ясно, что с распознаванием лучше всего справляется специально для этого "обученная" утилита - ABBYY FineReader. Видимо, поняли это многие (кроме самих разработчиков) и поэтому из-под пера энтузиаста вышла урезанная версия DEE без дополнительных языков (так называемая Light Edition (dstu2204.narod.ru/djvu_old/DocExpress500_b16_plus.rar или dstu2204.narod.ru/djvu_old/DocExpress50016.rar или dstu2204.narod.ru/djvu_old/Editor6_LE_nt.rar). Обладает она всеми нужными функциями версии полной, прекрасно компилирует и декомплилирует djvu-книги. И размер уменьшился, ни много, ни мало, в сто раз. Скачать 2 мегабайта сегодня по силам даже энтузиастам dial-up Интернета (если таковые еще остались). Работа с утилитой облегченной аналогична работе с полной версией (которая подробно описывалась в "КВ" №38 за 2008 год. Открываем первый файл ("Файл"-"Открыть"), затем щелкаем по эскизу первой страницы и выбираем из контекстного меню "Добавить страницы после..." . Выбираем файл, последний из списка, зажимаем Shift и щелкаем по файлу, идущему в списке вторым (первый у нас уже загружен в программу). Ждем, пока все файлы будут загружены, и выбираем меню "Файл" - "Сохранить как". Сохраняем файл со следующими параметрами: профиль - "нормальный", разрешение - "300 dpi", качество текста - "форсированный".
После завершения кодирования останется самая малость - переименовать файл в соответствии с общепринятыми правилами систематизации. Но об этом немного позже. Хотелось бы упомянуть еще одну утилиту, которая при крошечном размере обладает всеми достоинствами DEE. Называется она Djvu Small (djvu-soft.narod.ru/soft/djvu_small_v0_3_4.rar) и представляет собой программный пакет для группового кодирования-декодирования в/из DjVu, составленный на основе программы DEE 5.0. DjVu Small имеет 3 режима работы, каждый из которых соответствует консольным утилитам для работы с djvu:
  • Документ -> DjVu (консольная утилита documenttodjvu)
  • Фото -> DjVu (консольная утилита phototodjvu)
  • Декодировать DjVu (консольная утилита djvudecode)
Утилита documenttodjvu (и, соответственно, диалоговое окно "Документ -> DjVu") - утилита для пакетного кодирования чёрно-белых, серых и цветных графических файлов в форматах bmp, jpeg, jpg, gif, tiff, tif, pnm, ppm, pgm, pbm. Аналог предыдущей программы, phototodjvu, предназначен для пакетного кодирования серых и цветных графических файлов (в тех же форматах), но с улучшенным качеством.
Ну и последний консольный обработчик, Djvudecode, служит для пакетного декодирования любых DjVu-файлов: одно- и многостраничных; содержащих чёрно-белые, серые и цветные изображения (при декодировании автоматически создаются файлы соответствующей битовой разрядности). В любом из режимов работы пользователь визуально формирует параметры кодирования, которые DjVu Small подаёт затем через командную строку на вход соответствующей консольной утилиты.
Особых премудростей в работе с программой нет, просто открываем графические файлы, выбираем соответствующий режим работы, отмечаем профиль работы (значения аналогичны таковым в DEE) и жмем на кнопочку "Пуск". В результате получаем закодированный в djvu файл. Минимум лишних телодвижений - максимум функциональности. Графическая оболочка позволяет настраивать просто огромное количество различных параметров консольных утилит, но рядовому пользователю разбираться в этом смысла нет, так как описание функциональных особенностей тонкой настройки Djvu Small достойно отдельной статьи.
Напоследок рекомендую назвать созданную вами книгу в соответствии с негласной номенклатурой, придуманной сообществом русскоязычных "книгопечатников" для облегчения систематизации книг в публичных библиотеках. Автоматизирует эту рутинную работу программа Name Creator (djvu-soft.narod.ru/soft/name_creator_v1_0.rar), которая генерирует название в соответствии с принятой системной классификацией djvu-книг. В дальнейшем соответствие единому стандарту облегчает процесс распространения книг через Интернет.
Вот книга и создана. Возможно, на освоение технологии изначально уйдет много времени, но уже вторая-третья книга, при условии наличия достаточных машинных мощностей, будет укладываться в рамки "книжки-пятиминутки". Чтобы не быть голословным, скажу, что на ноутбуке Dell с 2 Gb оперативной памяти, жестким диском SATA2 7200 ppm и процессором Core2Duo P8500 обработка 300 двухсторонних фотографий книги формата B5 и конвертация их в электронную книгу занимает ~ 5 минут. Так что, "Революция уже началась! Присоединяйтесь!".

0 коммент.:

Отправить комментарий