Обзор pdfjam: объединение, раскладка и подготовка PDF из командной строки
pdfjam — не просмотрщик и не универсальный редактор PDF, а командный инструмент для перекомпоновки страниц перед печатью, объединения документов, выборки диапазонов, поворота, масштабирования и раскладки нескольких страниц на один лист. Актуальная стабильная версия на момент подготовки обзора — 4.3.1; пакет поддерживается, распространяется через CTAN и входит в TeX Live и MiKTeX. Его ключевая особенность — использование LaTeX-пакетов pdfpages и graphicx: это даёт гибкую геометрию страниц, но одновременно означает, что исходный PDF обрабатывается прежде всего как графическое содержимое страницы, а не как набор редактируемых объектов.
| Параметр | Состояние |
|---|---|
| Тип | Командный инструмент и shell-скрипт для обработки и компоновки PDF |
| Актуальная стабильная версия | 4.3.1 |
| Поддержка проекта | Активная; релиз 4.3.1 опубликован весной 2026 года, обновление присутствует в CTAN |
| Основные платформы | Unix-подобные системы: Linux, macOS, FreeBSD и другие; для Windows проект предлагает пробовать WSL, Cygwin или Git Bash |
| Входные данные | PDF, а также графические входы, перечисленные в документации проекта: PS, EPS, JPEG и PNG |
| Выход | |
| Интерфейс | Командная строка; отдельного графического интерфейса в основном пакете нет |
| Лицензия | GNU GPL версии 2 или новее |
| Оплата и аккаунт | Платной редакции, подписки, пробного периода и обязательной регистрации нет |
| Критические зависимости | Рабочая установка LaTeX и пакет pdfpages; отдельные функции используют внешние утилиты |
Скачать pdfjam
Новейшая версия для Виндовс, macOS и Линукс. Удобный редактор PDF под российские реалии.
Самый безопасный источник pdfjam — CTAN, официальный репозиторий проекта или пакет из TeX-дистрибутива. CTAN показывает стабильную версию 4.3.1 и указывает, что пакет входит в TeX Live и MiKTeX. На Unix-подобной системе разумно сначала использовать пакетный менеджер ОС либо менеджер TeX Live, а ручную установку релиза оставлять для случаев, когда пакетная схема не подходит.
В TeX Live отдельные пакеты устанавливаются через tlmgr. Если сам TeX Live поставлен пакетным менеджером Linux-дистрибутива, не стоит без необходимости смешивать две системы обновления: используйте рекомендуемый для этой установки способ. Официальный упакованный релиз pdfjam содержит bin/pdfjam и man-страницу; при ручной установке исполняемый файл должен находиться в PATH, а справка — в MANPATH. LaTeX и pdfpages при этом всё равно обязательны.
На Windows проект не обещает обычную нативную программу. Документация предлагает пробовать WSL, Cygwin или Git Bash. Поэтому наличие пакета в MiKTeX не следует путать с отдельным Windows-приложением: для предсказуемой автоматизации лучше использовать Unix-подобную среду, где поведение соответствует основной модели проекта.
Перед обновлением полезно отделять стабильный релиз от кода разработки. На странице CTAN и в GitHub Releases текущим выпуском остаётся 4.3.1, тогда как changelog ветки master уже содержит раздел 4.4. Для рабочей станции и особенно для CI это аргумент в пользу версии из релизного канала: функции master могут ещё не иметь готового пакета в вашем TeX-дистрибутиве.
Что такое pdfjam
pdfjam вырос из инструментов подготовки PDF к печати: первый pdfnup датируется 2002 годом, название PDFjam появилось в 2004-м. Современный проект использует написание pdfjam. Первоначальный автор — David Firth; сопровождение позже перешло к Reuben Thomas, а с ноября 2024 года ведущую роль получил Markus Kurtz. CTAN помечает Firth как неактивного участника, но сам пакет продолжает выпускаться.
Программа принимает документы, формирует временную LaTeX-сборку и создаёт новый PDF средствами pdfpages и graphicx. Это особенно удобно для задач «объединить выбранные страницы», «разместить несколько страниц на листе», «повернуть», «масштабировать», «подготовить буклет» или «сместить содержимое под переплёт».
pdfjam не является просмотрщиком, OCR-системой или редактором текста. Для чтения логичнее Sumatra PDF; для визуальной перестановки страниц — PDFsam Visual или другой GUI-инструмент. Сильная сторона pdfjam — воспроизводимая командная компоновка.
Старое имя PDFjam иногда используют для всего исторического семейства pdfnup, pdfjoin и других оболочек. В актуальной ветке это вводит в заблуждение: основной поддерживаемый продукт — единый скрипт pdfjam, а вынесенный pdfjam-extras прямо отделён от основного пакета. Также это не веб-сервис и не библиотека для встраивания в приложение: пользователь запускает локальную команду, которая оркестрирует LaTeX-инструменты.
Основные функции pdfjam
Объединение и выбор страниц
pdfjam собирает страницы из нескольких источников в один PDF и позволяет задавать диапазон отдельно для каждого входа. Можно перечислять отдельные номера, интервалы и нужный порядок. Например, pdfjam file1.pdf ‘2-6’ file2.pdf ‘10,3-6’ —outfile packet.pdf создаст результат в последовательности, заданной аргументами. В синтаксисе pdfpages поддерживаются и специальные элементы вроде пустой страницы.
Раскладка n-up
Опция —nup XxY размещает несколько логических страниц на одном листе: —nup 2×2 даёт четыре страницы на лист. Дополнительно доступны рамки, порядок заполнения по строкам или столбцам, интервалы —delta, смещение —offset и масштаб. Такой режим подходит для раздаточных материалов и компактной печати слайдов.
Размер бумаги и масштаб
Через —paper и —papersize задаётся формат листа, —landscape меняет ориентацию, —scale масштабирует содержимое, а —width, —height и —keepaspectratio управляют размером включаемой графики. Важно, что все страницы одного выходного PDF получают общий размер и ориентацию. Если исходные страницы разноформатны, pdfjam нормализует их под единое правило; —fitpaper true ориентируется на размер первой включённой страницы.
Поворот, отражение, обрезка
—angle поворачивает содержимое, —reflect и —reflect* отражают страницы, —offset смещает их. Для обрезки используются —trim, —viewport и —clip. При —trim фактическое отсечение области требует —clip true. Эти параметры опираются на graphicx и полезны, когда перед n-up нужно убрать лишние поля.
Буклеты, сигнатуры и двусторонняя печать
—booklet true переставляет страницы для буклетной печати. —signature N делает сигнатуры, где N кратно четырём; есть вариант для правостороннего переплёта. Параметры twoside и otheredge помогают готовить содержимое для двусторонней печати и конкретного края переворота.
Пакетный режим и метаданные
—batch создаёт отдельный результат для каждого входного файла, —suffix задаёт суффикс имени, —outfile — файл или каталог вывода. Проект предупреждает, что существующий файл в некоторых сценариях может быть перезаписан без запроса. Для Title, Author, Subject и Keywords есть отдельные параметры; —keepinfo сохраняет эти поля из последнего входного PDF и требует утилиту pdfinfo.
Расширение через LaTeX
—preamble добавляет TeX-код, —latex позволяет выбрать движок, а pagecommand и picturecommand выполняют команды на страницах. Это делает pdfjam значительно гибче простого объединителя, но ошибки в преамбуле или конфликты пакетов уже диагностируются как обычные ошибки LaTeX.
Дополнительное управление страницами
pdfpages-опции позволяют добавлять пустые страницы, дублировать каждую страницу, выбирать шаблонный размер, указывать PDF page box и менять порядок размещения. —openright и —openrighteach добавляют пустую страницу перед началом документа или каждого входного файла, что полезно при подготовке материалов, где новый раздел должен начинаться справа. —pagebox выбирает MediaBox, CropBox, BleedBox, TrimBox или ArtBox как геометрическую основу.
Для создаваемой структуры доступны —link, —addtotoc и родственные параметры. Их нужно отличать от сохранения исходных закладок: pdfjam может создать новые ссылки на вставленные страницы и новые элементы оглавления, но исходная интерактивная модель входного PDF при обычном включении страниц не переносится автоматически.
Интерфейс и удобство использования
У pdfjam нет окна с миниатюрами: рабочая среда — терминал. Для shell-пользователя это удобно, потому что команда полностью фиксирует преобразование и легко повторяется; для человека, привыкшего перетаскивать страницы мышью, порог входа выше, чем у PDFsam Basic.
Основная навигация идёт через pdfjam —help и man pdfjam. В ветке 4.3 добавлено отдельное PDF-руководство с иллюстрированными примерами; 4.1 улучшила man-страницу и добавила completion для zsh. В master уже отмечена будущая 4.4, но её незарелизованные возможности нельзя считать частью стабильной 4.3.1.
Параметры относятся к нескольким уровням: самому pdfjam, pdfpages, graphicx и, в сложных случаях, LaTeX. Поэтому проще сначала освоить объединение, диапазоны и n-up, затем размеры бумаги и обрезку, и только потом переходить к преамбуле. Команды и основная документация англоязычные.
Повторяющиеся настройки можно вынести в конфигурацию. Проект ищет pdfjam.conf в каталогах из собственного configpath и пользовательский файл .pdfjam.conf в домашнем каталоге; команда pdfjam —configpath показывает путь поиска. Опция —vanilla отключает чтение конфигурационных файлов и полезна для диагностики: если команда работает в vanilla-режиме, но ломается обычно, причина вероятно находится в локальных настройках.
Поддерживаемые форматы и совместимость
Основной формат — PDF. Текущий README проекта также перечисляет PS, EPS, JPG и PNG как входные данные, тогда как краткое описание CTAN акцентирует PDF, JPG и PNG. Выходом остаётся PDF. DOCX, XLSX, EPUB и другие офисные или книжные форматы pdfjam напрямую не обрабатывает.
Ключевое ограничение — структура PDF. LaTeX-бэкенд включает исходные страницы как графику, поэтому официальная документация предупреждает о потере исходных гиперссылок и закладок. pdfpages умеет создавать новые ссылки и элементы оглавления, но это уже новая структура, а не сохранение исходной интерактивности. Для задач, где важны формы, аннотации и внутренние объекты PDF, лучше использовать структурный инструмент или редактор, например PDF-XChange Editor.
Для PDF без обычного расширения есть —checkfiles: тип файла проверяет внешняя утилита file с поддержкой -Lb. На уровне ОС проект ориентирован на Unix-подобные системы. Релиз 4.3 тестируется в CI с dash, bash, ksh и zsh; Windows остаётся сценарием через совместимый слой.
Для PDF с разными page box полезен —pagebox: можно явно выбрать mediabox, cropbox, bleedbox, trimbox или artbox. Это влияет на то, какую область страницы pdfjam считает исходной при включении и масштабировании. Такая настройка особенно важна в полиграфических PDF, где MediaBox и TrimBox могут заметно различаться.
Если требуется просто объединить несколько PDF и сохранить их разные размеры и ориентации, документация прямо рекомендует выбрать другой инструмент. Ограничение не является ошибкой: единая геометрия листа следует из способа, которым pdfjam строит новый LaTeX-документ.
Производительность и стабильность
Проект не публикует универсальных сравнительных бенчмарков, поэтому корректнее оценивать архитектуру. Каждый запуск создаёт временную TeX-сборку и вызывает LaTeX-движок; скорость зависит от количества страниц, числа входных файлов, сложности PDF и используемой раскладки. Сам скрипт мал, но полный рабочий стек включает TeX и pdfpages, поэтому для среды без TeX он тяжелее автономного CLI-инструмента.
Документация описывает ошибку Too many open files при очень большом числе документов или страниц и предлагает обход через преамбулу. Также отмечены редкие проблемы с потерей деталей шрифтов, например лигатур; для них приведена настройка копирования шрифтов. Неверный результат может быть связан с устаревшими pdfTeX, pdftex.def или pdfpages.
Ветка 4.x добавила регрессионные и интеграционные тесты, а 4.3 проверяет работу нескольких shell в CI. Это не исключает проблем конкретной TeX-конфигурации, но показывает системное тестирование ключевой логики.
По умолчанию временный каталог после успешной работы очищается; —builddir позволяет перенести сборку в выбранное место, а —no-tidy оставить промежуточные материалы для диагностики. Это полезно при ошибке LaTeX: вместо одной строки shell можно изучить сформированный TeX-файл и журнал компиляции. Но выбранный builddir нужно считать рабочей областью — ветка 4.x предупреждает, что файлы там могут перезаписываться.
Для автоматизации есть —quiet, подавляющий обычные сообщения о ходе работы. В production-скрипте это удобно только после стабилизации команды: при первом внедрении лучше сохранять диагностический вывод, потому что сбой может исходить от LaTeX, pdfpages, шрифта или файловой системы. Крупный PDF также стоит проверять на свободное место для временной сборки, даже если сам пакет pdfjam мал.
Лицензирование и версии
pdfjam распространяется по GNU GPL версии 2 или новее. Платной редакции, подписки, пробного периода, регистрации, водяных знаков и лимита на число страниц нет. Стоимость использования определяется только сопровождением среды: если TeX уже установлен, добавляется небольшой пакет; если нет, ради pdfjam приходится разворачивать TeX-стек.
Стабильная версия — 4.3.1. В changelog основной ветки уже обозначена 4.4 с bash completion, но отдельного стабильного релиза 4.4 на момент проверки нет. Исторические wrapper-скрипты вроде pdfnup и pdfjoin с версии 3.02 вынесены в pdfjam-extras и не являются поддерживаемой частью современного основного пакета.
Отдельной коммерческой ветки с дополнительными функциями у проекта нет: один и тот же исходный пакет используется дома, в организации и в автоматизации с учётом условий GPL при распространении модифицированных копий. Для конечной работы с собственными документами не требуется покупать лицензионный ключ или активировать установку.
Системные требования
Unix-подобные системы
Нужны Unix-подобная среда, shell, LaTeX и пакет pdfpages. Для —keepinfo требуется pdfinfo из poppler-utils; для —checkfiles — утилита file с ключами -Lb. libpaper может использоваться для системного формата бумаги, но для базовой работы необязателен.
Документация не задаёт минимальный объём RAM, диска или конкретную версию Linux/macOS, поэтому придумывать такие цифры нельзя. Совместимость определяется доступностью TeX-дистрибутива и нужных утилит.
Windows
Windows не заявлен как нативная целевая система. Проект предлагает WSL, Cygwin или Git Bash. Для WSL фактически нужна Linux-среда с теми же зависимостями. Наличие пакета в MiKTeX подтверждает распространение через TeX-экосистему, но не превращает pdfjam в отдельное Windows-приложение.
Быстрая проверка
pdfjam —version подтверждает установку скрипта, pdfjam —help — доступность справки. Если эти команды работают, а сборка PDF нет, проверять следует LaTeX, pdfpages и дополнительные утилиты.
Карта критических зависимостей
| Компонент | Роль | Без него |
|---|---|---|
| Unix-подобный shell | Запуск скрипта | На Windows нужен совместимый слой |
| LaTeX | Сборка нового PDF | Основная обработка невозможна |
| pdfpages и graphicx | Включение, раскладка и геометрия страниц | Ключевые функции недоступны |
| pdfinfo | —keepinfo | Базовая работа сохраняется, но этот режим метаданных не работает |
| file | —checkfiles | PDF без стандартного расширения сложнее распознать |
Аккаунт, облачный сервер и веб-сервис в рабочую цепочку не входят: обработка выполняется локальными программами. Интернет может понадобиться только менеджеру пакетов при установке или обновлении. Для сервера с уже установленным TeX это удобная схема; для минимального контейнера одна простая PDF-задача может не оправдать полный стек.
Отдельно стоит различать обязательные и условные зависимости. Без LaTeX и pdfpages не работает сама модель pdfjam; без pdfinfo теряется только —keepinfo, а без file — удобное распознавание нестандартно названного PDF через —checkfiles. Такое разделение помогает уменьшать серверный образ: устанавливать дополнительные утилиты можно только под реально используемые параметры.
Паспорт обратимости операций
| Операция | Обратимость | Главный риск |
|---|---|---|
| Объединение и выбор страниц | Исходники не меняются, если вывод записан в новое имя | В новом PDF теряется исходная интерактивность |
| n-up, масштаб, поворот | Откат — повторная сборка из исходников | Неверная геометрия требует нового запуска |
| Метаданные | Поля можно задать заново | Поддерживается не вся структура PDF |
| Перезапись | Истории версий нет | Совпадающее имя может уничтожить прежний результат |
Надёжная стратегия — хранить исходные PDF неизменными и считать результат производным файлом. У pdfjam нет визуального Undo после завершённой сборки; воспроизводимость обеспечивается сохранённой командой и отдельным выходным именем.
Необратимость касается не исходника, а уже созданного результата: pdfjam не хранит историю преобразований внутри PDF. Поэтому безопасный шаблон автоматизации — input.pdf → output.new.pdf → проверка → атомарная замена рабочего файла средствами оболочки. Если сразу писать поверх ценного результата, встроенного механизма восстановления у pdfjam нет.
Преимущества и недостатки pdfjam
Плюсы и минусы
• Гибкая раскладка страниц. n-up, буклеты, сигнатуры, смещения, интервалы, рамки и пользовательский размер бумаги покрывают задачи, которые в простом объединителе PDF отсутствуют.
• Автоматизация. Команды легко повторять из shell-скриптов, Makefile, CI или пакетной обработки без ручного интерфейса.
• Свободная лицензия. Нет подписки, регистрации, водяных знаков и искусственных лимитов бесплатного режима.
• Локальная обработка. Рабочий процесс не зависит от загрузки документов в облачный сервис.
• Интеграция с LaTeX. Пользователь, уже работающий с TeX, получает доступ к pdfpages, graphicx и расширению через преамбулу.
• Активное сопровождение. Современная ветка 4.x получает релизы, документацию и тесты, а не остаётся на уровне старого скрипта начала 2010-х.
Минусы
• Нет GUI. Страницы нельзя визуально перетаскивать и оценивать до запуска команды.
• Тяжёлая зависимость для нетехничного сценария. Без уже установленного TeX ради одной PDF-операции приходится добавлять значительный стек.
• Потеря интерактивности исходного PDF. Закладки и гиперссылки исходных документов не сохраняются при обычной обработке.
• Единая геометрия результата. В одном выходном документе нельзя просто сохранить разные размеры и ориентации исходных страниц без их нормализации.
• Windows не является нативной целевой платформой. Нужна Unix-совместимая среда.
• Риск перезаписи. Некоторые сценарии вывода не запрашивают подтверждение, если целевой файл уже существует.
Сравнение с аналогами
| Инструмент | Интерфейс | Сильная сторона | Когда выбирать |
|---|---|---|---|
| pdfjam | CLI | n-up, буклеты, масштабирование и печатная геометрия через LaTeX | Автоматизируемая подготовка PDF в Unix/TeX-среде |
| qpdf | CLI и библиотека | Структурные преобразования, страницы, шифрование, проверка | Нужно сохранить и контролировать внутренние свойства PDF без LaTeX |
| PDFsam Basic | GUI | Объединение, разделение, извлечение и поворот локально | Нужен простой визуальный инструмент на Windows, macOS или Linux |
| PDF Arranger | GUI с миниатюрами | Ручная перестановка, обрезка и поворот страниц | Важно видеть страницы до сохранения |
| Sumatra PDF | GUI | Быстрый просмотр и навигация | Нужно читать и проверять результат, а не делать печатную раскладку |
qpdf ближе к внутренней структуре PDF и лучше подходит, когда критичны шифрование, объекты и сохранность специфических свойств. pdfjam выигрывает там, где задача формулируется языком листа: 4-up, сигнатура, формат бумаги, смещение под переплёт.
Линейка PDFsam ориентирована на настольный GUI. PDF Arranger ещё сильнее акцентирует миниатюры и ручную перестановку. Для полноценного редактирования текста, форм и OCR нужен редактор класса Adobe Acrobat Pro.
Sumatra PDF — не прямой конкурент: он прежде всего показывает документы. Практичная связка на Windows — сформировать PDF в pdfjam внутри совместимой среды и открыть результат в Sumatra PDF для визуального контроля и печати.
PDFsam Basic официально работает локально, не требует регистрации и даёт GUI для повседневных операций, поэтому он удобнее нетехническому пользователю. PDF Arranger показывает миниатюры и позволяет буквально видеть перестановку страниц. pdfjam, напротив, выигрывает там, где одна и та же раскладка должна применяться к десяткам файлов или быть частью Makefile, shell-скрипта и CI.
Если задача выходит в полноценное редактирование, сравнение меняется. Master PDF Editor и другие редакторы работают с содержимым страницы и аннотациями, но сложнее автоматизируются и решают другой класс задач. pdfjam стоит оценивать не по числу редакторских функций, а по качеству воспроизводимой печатной компоновки.
Хронология развития и поддержки
| Период | Веха | Значение |
|---|---|---|
| 2002 | Первый pdfnup | Начало линии инструментов компоновки |
| 2004 | PDFjam 1.0 | Оформление отдельного пакета |
| 2019 | pdfjam 3.02 | Возврат к активным релизам и единый основной скрипт |
| 2024 | Сопровождение переходит к Markus Kurtz | Подготовка ветки 4.x |
| 2025–2026 | 4.x и стабильная 4.3.1 | Рефакторинг, тесты, улучшенная документация и переносимость |
Старые статьи о PDFjam 1.x–2.x могут описывать wrapper-скрипты и установку, не соответствующие современному пакету. Начиная с 3.02 дополнительные оболочки вынесены в неподдерживаемый pdfjam-extras. Для стабильной эксплуатации следует ориентироваться на релизы, а не на функции master: обозначенная там 4.4 ещё не заменяет 4.3.1 в CTAN и GitHub Releases.
Переход к 4.0 сопровождался не только сменой номера: проект зафиксировал крупный рефакторинг и несколько несовместимых изменений, добавил builddir, улучшил обработку размеров бумаги и метаданных и расширил тесты. Поэтому перенос старых скриптов 2.x или ранних 3.x в современную среду разумно начинать с проверки help и changelog, а не с предположения о полной обратной совместимости.
Инструкция по установке
Через TeX Live
1. Убедитесь, что TeX Live и tlmgr доступны. Если TeX установлен пакетным менеджером Linux, учитывайте правила этого дистрибутива и не смешивайте способы обновления без необходимости.
2. Проверьте пакет командой tlmgr info pdfjam и при необходимости установите: tlmgr install pdfjam.
3. Запустите pdfjam —version и pdfjam —help.
4. Сделайте безопасный тест: pdfjam input.pdf —outfile output-test.pdf.
5. Откройте output-test.pdf и проверьте порядок страниц и формат бумаги.
Для MacTeX операции tlmgr могут потребовать системных прав записи, что отдельно отмечено в документации TeX Live.
Готовый релиз или исходники
В упакованном релизе bin/pdfjam размещают в PATH, man/pdfjam.1 — в MANPATH; LaTeX и pdfpages должны уже работать. Для установки из исходников проект использует l3build, официальная команда — l3build install —full. Исходники разумны для разработки, стабильному пользователю обычно проще пакет TeX Live или ОС.
Windows
Сначала создаётся WSL, Cygwin или Git Bash, затем внутри совместимой среды устанавливаются LaTeX, pdfpages и pdfjam. Для повторяемых сценариев WSL обычно ближе всего к заявленной Unix-модели.
Удаление
Удаляйте pdfjam тем же менеджером, которым он установлен: пакетным менеджером ОС либо tlmgr для управляемой им копии. При ручной установке удаляются скрипт и man-страница. Сгенерированные PDF не являются частью пакета и остаются до отдельного удаления.
Проверка после обновления
После смены версии сначала выполните pdfjam —version, затем повторите одну короткую команду с заранее известным результатом. Если используются пользовательские .pdfjam.conf, —preamble или нестандартный LaTeX-движок, отдельно запустите тот же тест с —vanilla: так проще отличить проблему версии от конфигурации. Для производственного сценария полезно сохранить номер версии вместе с командой сборки.
При ручной установке не копируйте поверх неизвестной системной версии без проверки which pdfjam. Несколько экземпляров в PATH создают типичную ситуацию, когда обновлён один файл, а shell запускает другой. После удаления также проверьте, что which pdfjam больше не находит старую копию либо указывает на ожидаемый пакетный экземпляр.
Практические кейсы
Собрать выбранные страницы из двух документов
Цель. Сначала страницы 2–6 первого файла, затем 10 и 3–6 второго. Действие. pdfjam file1.pdf ‘2-6’ file2.pdf ‘10,3-6’ —outfile packet.pdf. Проверка. Откройте packet.pdf и сверяйте порядок и число страниц. Ограничение. Исходные закладки и гиперссылки не следует считать сохранёнными.
Сделать четыре страницы на лист
Цель. Подготовить компактный handout. Действие. pdfjam slides.pdf —nup 2×2 —frame true —outfile handout.pdf. При необходимости добавьте —landscape, —delta или —scale. Проверка. Посмотрите несколько листов при 100% масштабе. Ограничение. Увеличение числа страниц на лист снижает физический размер текста.
Нормализовать Letter в A4
Цель. Подготовить документ к печати на A4. Действие. pdfjam letter.pdf —paper a4 —outfile a4.pdf. Проверка. Сверьте размер страницы и края. Ограничение. Это перекомпоновка, а не редактирование объектов; содержимое может масштабироваться.
Подготовить простой буклет
Цель. Переставить страницы для сгиба. Действие. pdfjam source.pdf —booklet true —outfile booklet.pdf. Для фиксированной сигнатуры используйте —signature с числом, кратным четырём. Проверка. Сделайте пробный просмотр или печать. Ограничение. pdfjam не рассчитывает профессиональную компенсацию толщины бумаги.
Пакетная раскладка 2-up
Цель. Получить отдельный 2-up PDF для каждого входа. Действие. pdfjam —batch —nup 2×1 —suffix 2up —landscape file1.pdf file2.pdf. Проверка. Должны появиться два независимых результата. Ограничение. Для одного объединённого файла —batch не нужен.
Обрезать поля перед n-up
Цель. Удалить лишние поля перед раскладкой. Действие. Используйте первый pdfjam с —trim и —clip true, направьте его вывод во второй pdfjam с —nup. Проверка. Сверьте края на нескольких страницах. Ограничение. Одни и те же величины обрезки плохо подходят документам с сильно меняющимися полями.
Контроль перед сохранением и передачей
• Пишите результат в новое имя и не полагайтесь на подтверждение перезаписи.
• Сверьте количество, порядок, ориентацию и формат страниц.
• Проверьте первую, среднюю и последнюю страницу при 100% масштабе.
• Если исходник содержал закладки, ссылки, формы или аннотации, проверьте их отдельно.
• Для печатной раскладки сделайте пробную печать до тиража.
• Сохраните команду: она служит рецептом воспроизведения результата.
Сместить страницы под переплёт
Цель. Освободить дополнительное место у корешка на двусторонних листах. Действие. Используйте —twoside вместе с —offset, например pdfjam —twoside source.pdf —offset ‘1cm 0cm’ —outfile bound.pdf. Проверка. Сравните внутренние поля чётных и нечётных страниц. Ограничение. Конкретное смещение зависит от способа переплёта и размеров бумаги; универсального значения нет.
Сохранить основные метаданные
Цель. После компоновки перенести Title, Author, Subject и Keywords из входного PDF. Подготовка. Убедитесь, что доступна утилита pdfinfo. Действие. Добавьте —keepinfo к команде вывода; при необходимости отдельные поля можно переопределить параметрами pdfjam. Проверка. Просмотрите свойства готового файла. Ограничение. Это не перенос всей внутренней метаинформации PDF и не сохранение закладок или форм.
Часто задаваемые вопросы
Можно ли редактировать текст внутри PDF?
Нет. pdfjam перекомпоновывает страницы; для изменения текста и объектов нужен PDF-редактор.
Есть ли OCR?
Нет. Сканы можно переставить или масштабировать, но распознавание текста программа не выполняет.
Сохраняются ли закладки и гиперссылки?
Нет гарантии их сохранения: документация прямо указывает, что исходные интерактивные свойства теряются из-за графического включения страниц. Новые ссылки можно создавать средствами pdfpages, но это другая структура.
Почему у результата единый размер страниц?
Так устроена модель pdfjam: один выходной документ получает общий размер и ориентацию. Для сохранения разноразмерных страниц лучше применять структурный PDF-инструмент.
Работает ли pdfjam с защищёнными PDF?
У него нет собственного полноценного набора функций дешифрования и управления разрешениями. Защищённый файл сначала обрабатывают подходящим инструментом при наличии законных полномочий и пароля.
Нужен ли интернет?
Для самой компоновки нет: она выполняется локально. Сеть может понадобиться только для установки и обновления пакетов.
Почему не работает —keepinfo?
Опция зависит от pdfinfo. В минимальной системе установите соответствующую утилиту либо задавайте поддерживаемые поля метаданных явно.
Можно ли использовать pdfjam в CI?
Да. Нужны shell, LaTeX, pdfpages и дополнительные утилиты выбранного сценария. Важно давать уникальные имена выходам и сохранять журналы LaTeX при ошибках.
Что с Windows?
Официально это не нативная целевая система. Проект предлагает WSL, Cygwin или Git Bash; для автоматизации предпочтительна среда, близкая к обычному Linux.
Чем проверять результат?
Любым надёжным просмотрщиком PDF. На Windows удобен Sumatra PDF: он подходит для контроля порядка, ориентации, читаемости и печати, хотя не заменяет pdfjam как инструмент компоновки.
Можно ли сохранить смешанные размеры страниц?
Не в естественном для pdfjam режиме: выходной документ строится с единым размером и ориентацией. Если именно сохранение разных MediaBox и ориентаций является требованием, лучше выбрать qpdf или иной структурный инструмент.
Можно ли использовать JPEG и PNG вместе с PDF?
Да. Текущий README перечисляет PDF, PS, EPS, JPG и PNG как входы. Однако основная логика продукта остаётся PDF-компоновкой, а не универсальным конвертером изображений и документов.
Вывод
pdfjam стоит выбирать, если PDF воспринимается как набор страниц для повторяемой командной компоновки. Его сильные стороны — n-up, буклеты, сигнатуры, формат бумаги, поворот, смещение, подрезка и пакетные сценарии. В среде с уже установленным TeX он хорошо автоматизируется и не требует аккаунта или облачного сервиса.
Он не подходит как универсальный редактор: нет OCR и редактирования текста, а исходная интерактивность PDF может теряться. Пользователю Windows без Unix-совместимой среды проще GUI-программа; для шифрования и структурных свойств PDF разумнее qpdf или специализированный редактор. Sumatra PDF при этом остаётся естественным компаньоном для просмотра и проверки результата.