pdf2djvu(1)

НАЗВАНИЕ
pdf2djvu - создаёт DjVu-файлы из PDF-файлов

СИНТАКСИС

pdf2djvu [{-o | --output} результирующий-djvu-файл] [параметр...] pdf-файл...

pdf2djvu {-i | --indirect} файл-индекса-djvu [параметр...] pdf-файл...

pdf2djvu {--version | --help | -h}

ОПИСАНИЕ

Программа создаёт DjVu-файл из одного или нескольких Portable Document Format файлов.

ПАРАМЕТРЫ

pdf2djvu допускает следующие параметры:

  Тип документа, имена файлов

-o, --output=результирующий-djvu-файл
    Создать объединённый многостраничный документ. Записать файл в результирующий-djvu-файл вместо стандартного вывода.

-i, --indirect=файл-индекса-djvu
    Создать раздельный многостраничный документ. Использовать файл-индекса-djvu как имя файла индекса; поместить файлы-компоненты в один и тот же каталог. Каталог должен существовать и иметь разрешение на запись.

--page-id-template=шаблон
    Устанавливает схему именования идентификаторов страниц. Обратитесь за справкой к «ЯЗЫК ШАБЛОНОВ» секции описания языка шаблонов.

    Шаблон по умолчанию «p{page:04*}.djvu».

    По причине портабельности идентификатор страницы:

        • должен состоять только из строчных ASCII букв, цифр, _, +, - и точки,

        • не может начинаться с +, - или точки,

        • не может включать две последовательные точки,

        • должен заканчиваться расширением .djvu или .djv.

--page-id-prefix=префикс
    Эквивалентно «--page-id-template=префикс{page:04*}.djvu».

--page-title-template=шаблон
    Устанавливает шаблон заголовков страниц. Обратитесь за справкой к секции описания языка шаблонов «ЯЗЫК ШАБЛОНОВ».

    Шаблон по умолчанию «{label}».

--no-page-titles
    Не устанавливать заголовки страницы.

  Разрешение, размер страницы

-d, --dpi=разрешение
    Устанавливает желаемое разрешение разрешение точек на дюйм. По умолчанию 300 dpi. Разрешённый диапазон: 72 ≤ разрешение ≤ 6000.

--media-box
    Использовать MediaBox для определения размера страницы. По умолчанию используется CropBox.

--page-size=ширинаxвысота
    Устанавливает предпочитаемый размер страницы в ширина пикселов × высота пикселов. Действительный размер страницы может изменяться для соблюдения соотношения и из-за ограничений DjVu. (Этот параметр имеет приоритет над -d/--dpi.)

--guess-dpi
    Попробовать предположить оригинальное разрешение проверяя внедрённые изображения. Используйте с осторожностью.

  Качество изображения

--bg-slices=n+...+n, --bg-slices=n,...,n
    Устанавливает качество кодирования фонового слоя IW44. Этот параметр похож на параметр -slice для c44. Обратитесь за справкой к man-странице c44(1). По умолчанию 72+11+10+10.

--bg-subsample=n
    Устанавливает отношение подвыборки фона. По умолчанию 3. Допустимые значения находятся между 1 и 12 включительно.

--fg-colors=default
    Попробовать сохранить все цвета переднего плана. Используется по умолчанию.

--fg-colors=web
    Уменьшить количество цветов переднего плана до web-палитры (216 цветов). Не рекомендуется использовать.

--fg-colors=n
    Использует GraphicsMagick для уменьшения количества явных цветов в слое переднего плана. Допустимые значения от 1 до 4080. Не рекомендуется использовать.

--fg-colors=black
    Не использовать любую информацию о цветах из слоя переднего плана.

--monochrome
    Рендерить страницы как монохромные изображения. С этим параметром опции --bg-... и --fg-... не принимаются во внимание.

--loss-level=n
    Устанавливает агрессивность компрессии с потерями. По умолчанию 0 (без потерь). Допустимые значения от 0 до 200 включительно. Этот параметр похож на параметр -losslevel для cjb2. Обратитесь за справкой к man-странице cjb2(1). Этот параметр принимается во внимание только вместе с параметром --monochrome.

--lossy
    Равносильно --loss-level=100.

--anti-alias
    Разрешить сглаживание шрифтов и векторной графики. Не рекомендуется использовать.

  Извлечение

--no-metadata
    Не извлекать метаданные.

    По умолчанию:

        • Извлекаются следующие значения информации документа: Title, Author, Subject, Creator, Producer, CreationDate, ModDate. Временные отметки форматируются согласно стандарту RFC 3999[1]. Дата и время разделены одиночным пробелом.

        • Соответственно извлекаются (или создаются) и обновляются метаданные XMP.

        Примечание
        В случае нескольких входных документов используются только метаданные из первого.

--verbatim-metadata
    Сохранять метаданные нетронутыми.

--no-outline
    Не извлекать оглавление документа.

--hyperlinks=border-avis
    Делать границы ссылок всегда видимыми.

    По умолчанию границы ссылок становятся видимыми только при наведении на ссылку мыши.

--hyperlinks=#RRGGBB
    Принудительно использовать заданный цвет для границы ссылок.

--no-hyperlinks, --hyperlinks=none
    Не извлекать ссылки.

--no-text
    Не извлекать текст.

--words
    Извлечь текст. Записать расположение каждого слова. Используется по умолчанию.

--lines
    Извлечь текст. Записать расположение каждой строки, а не слова.

--crop-text
    Не извлекать текст, который находится за пределами страницы.

--no-nfkc
    Не применять NFKC[2] нормализацию к тексту за исключением символов из Alphabetic Presentation Forms block[3] (U+FB00–U+FB4F), которые нормализованы безоговорочно.

    По умолчанию применяется NFKC нормализация для всех символов.

--filter-text=командная строка
    Фильтровать текст через командная строка. Данный фильтр должен сохранить пробелы, управляющие символы и десятичные цифры.

    Этот параметр подразумевает --no-nfkc.

-p, --pages=диапазон-страниц
    Устанавливает страницы для конвертирования. диапазон-страниц — это разделяемый запятыми список поддиапазонов. Каждый поддиапазон является одиночной страницей (например, 17) или последовательным диапазоном страниц (например, 37-42). Повторяющиеся номера страниц не допускаются. Страницы нумеруются с 1.

    По умолчанию конвертируются все страницы.

  Производительность

-j, --jobs=n
    Использовать n потоков для конвертации. По умолчанию используется один поток.

-j0, --jobs=0
    Определить автоматически, сколько потоков использовать для конвертации.

  Подробности, справка

-v, --verbose
    Показывать больше информационных сообщений при конвертации файла.

-q, --quiet
    Не показывать информационные сообщения при конвертации файла.

--version
    Вывести информацию о версии и выйти.

-h, --help
    Показать справку и выйти.

ОКРУЖЕНИЕ

Следующие переменные окружения оказывают влияние на pdf2djvu в Unix-системах:

OMP_*
    Поведением, с точки зрения распараллеливания, можно управлять с помощью нескольких переменных окружения. За деталями обратитесь к спецификации OpenMP API[4].

TMPDIR
    pdf2djvu интенсивно использует временные файлы. Программа сохраняет их в каталоге заданном этой переменной. По умолчанию /tmp.

ЯЗЫК ШАБЛОНОВ

  Синтаксис шаблонов

Язык шаблонов использует как образец синтаксис форматирования строк в Python[5].

Шаблон — это текст, который содержит поля, окружённые фигурными скобками {}. Когда шаблон применяется, поля заменяются соответствующим образом отформатированными значениями. Кроме того, {{ и }} заменяются одиночными { и } соответственно.

  Синтаксис полей

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

Сдвиг — целое число со знаком (т. е. начинающееся на + or -).

Формат спецификации включает двоеточие, а затем спецификатор ширины поля.

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

После спецификатора ширины поля может располагаться знак звёздочки (*), что увеличивает минимальную ширину поля до максимально возможной длины переменной.

  Доступные переменные

dpage
    Количество страниц в документе DjVu.

page, spage
    Количество страниц в документе PDF.

label
    Метка страницы (логический номер страницы) в документе PDF.

    Эта переменная доступна только для заголовков страницы.

ДЕТАЛИ РЕАЛИЗАЦИИ

  Алгоритм разделения слоёв

Если не используется параметр --monochrome, pdf2djvu использует следующий простой алгоритм:

    1. Для каждой страницы сделать следующее:

        1. Преобразовать страницу в растровое изображение обычным порядком.

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

            • текст,

            • растровые изображения с глубиной 1 бит на пиксел,

            • векторные элементы (за исключением больших заполненных площадей).

        3. Сравнить оба изображения, пиксел за пикселом:

            1. Если их цвета совпадают, классифицировать пиксел как часть фонового слоя.

            2. В противоположном случае классифицировать пиксел как часть слоя переднего плана.

СООБЩЕНИЯ ОБ ОШИБКАХ

Если вы нашли ошибку в pdf2djvu, сообщите о ней в баг-трекер[6] или в список рассылки[7].

СМОТРИТЕ ТАКЖЕ

djvu(1), djvudigital(1), csepdjvu(1)

ПРИМЕЧАНИЯ

1.  RFC 3999
    https://www.ietf.org/rfc/rfc3339

2.  NFKC
    https://unicode.org/reports/tr15/

3.  Alphabetic Presentation Forms block
    https://unicode.org/charts/PDF/UFB00.pdf

4.  спецификации OpenMP API
    https://www.openmp.org/specifications/

5.  синтаксис форматирования строк в Python
    https://docs.python.org/2/library/string.html#format-string-syntax

6.  баг-трекер
    https://github.com/jwilk/pdf2djvu/issues

7.  список рассылки
    https://groups.io/g/pdf2djvu