PDF Arranger — небольшой GTK-редактор, который работает не с текстом, а со страницами PDF: меняет порядок, удаляет лишнее, поворачивает, обрезает поля, склеивает несколько файлов и разбивает один документ на части. Для офисных и домашних задач этого хватает чаще, чем кажется: тяжёлый редактор нужен для правки содержимого, а не для сборки документа из сканов.
Что умеет PDF Arranger и чего не умеет
Программа написана на Python и использует pikepdf — обёртку над библиотекой QPDF. Страницы не перерисовываются: приложение переставляет объекты внутри файла, поэтому текст, шрифты и векторная графика остаются нетронутыми, а размер почти не растёт. Это принципиальное отличие от «печати в PDF» и от конвертации через картинки.
Чего ждать не стоит: редактирования текста, заполнения форм, создания подписей и распознавания символов. Для OCR есть Tesseract и OCRmyPDF, для аннотаций — Xournal++, для вёрстки — Scribus. PDF Arranger решает одну задачу — привести набор страниц в нужный вид.
Установка
Пакет есть в основных репозиториях Debian, Ubuntu, Fedora и Arch. Flatpak выручает на дистрибутивах с замороженными версиями, но тогда доступ к файлам идёт через портал документов.
sudo apt install pdfarranger
sudo dnf install pdfarranger
sudo pacman -S pdfarranger
flatpak install flathub com.github.jeromerobert.pdfarranger
После установки проверьте, что программа видит системную библиотеку QPDF: если при открытии файла появляется ошибка о pikepdf, пакет установлен неполно — переустановите его из репозитория дистрибутива, а не через pip.
Интерфейс и базовые операции
После открытия файла в окне появляется лента миниатюр. Одиночный клик выделяет страницу, Ctrl добавляет к выделению отдельные страницы, Shift — диапазон. Перетаскивание мышью меняет порядок: красная линия показывает, куда встанет страница.
Полезные сочетания клавиш стандартные для GTK: Ctrl+O открывает файл, Ctrl+S сохраняет, Ctrl+Shift+S сохраняет под новым именем, Ctrl+Z отменяет последнее действие, Ctrl+A выделяет всё, Delete удаляет страницы, Ctrl+C и Ctrl+V копируют и вставляют их. Поворот и обрезка вынесены на панель инструментов и в контекстное меню.
Склейка документов и выбор диапазона
Команда «Файл → Добавить файлы» добавляет документ в конец, после чего страницы можно перетащить в нужное место. Если нужен не весь файл, в диалоге импорта есть поле диапазона: 1-3,7,10-12. Если порядок должен быть нестандартным, импортируйте нужные страницы и расставьте их перетаскиванием в ленте — так меньше шансов запутаться.
qpdf --show-npages scan.pdf
pdfinfo scan.pdf | head -20
qpdf --check scan.pdf
Перед склейкой полезно убедиться, что все файлы читаются: повреждённый PDF ломает экспорт на середине. qpdf --check показывает предупреждения о битых ссылках и объектах, а pdfinfo — число страниц и размер.
Порядок, поворот и удаление
Поворот применяется только к выделенным страницам, а не ко всему документу. Для сканов это важно: автоподатчик часто захватывает лист обратной стороной, и в ленте оказывается несколько перевёрнутых страниц. Поворот на 90° делается кнопкой на панели, на 180° — двумя нажатиями.
Дублирование через Ctrl+C и Ctrl+V удобно для титульного листа, бланка или разделителя. Удаление лишнего (пустые листы, подложенные обороты) выполняется клавишей Delete; отменить ошибку можно через Ctrl+Z, пока файл не сохранён.
Разделение и экспорт
«Файл → Экспортировать» сохраняет выделенные страницы в отдельный PDF. Чтобы разбить документ на части, выделяют группу, экспортируют, затем берут следующую. Для десятков файлов быстрее командная строка — QPDF и poppler-utils делают то же самое без ручной работы.
qpdf --split-pages=10 book.pdf part-%02d.pdf
pdfseparate book.pdf page-%d.pdf
pdfunite a.pdf b.pdf merged.pdf
Параметр --split-pages=10 означает по десять страниц в файле, а не «страницу номер десять». pdfseparate создаёт по файлу на страницу, pdfunite склеивает готовые части. Имена с ведущими нулями нужны, чтобы файлы сортировались правильно.
Сканы: поля, ориентация и размер страницы
Сканируйте с разрешением 300 dpi в градациях серого: этого достаточно для текста, а цветной режим втрое увеличивает файл. В PDF Arranger выделите все страницы и примените автоматическую обрезку белых полей из контекстного меню. Если поля неравномерные — книжный разворот, перекос, тень от крышки, — используйте ручную рамку и примените её к остальным страницам.
Обрезка меняет видимую область страницы, а не удаляет содержимое. Это обратимо при повторном открытии, но не все программы учитывают такую область, поэтому результат стоит проверить в другом просмотрщике и на печати.
pdfinfo -box scan.pdf | grep "Page size"
pdfjam --paper a4paper --outfile norm.pdf scan.pdf
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -o small.pdf norm.pdf
Если сканы сняты на A4, а вставленная страница — Letter, поля будут «плясать». pdfjam из пакета texlive-extra-utils приводит всё к одному формату, Ghostscript пережимает изображения. Не увлекайтесь: повторное сжатие ухудшает качество, делайте его один раз и от исходника.
Проверка результата и типичные ошибки
Перед отправкой документа пройдитесь по нему в просмотрщике: пролистайте все страницы, проверьте нумерацию, ориентацию и то, что обрезка не съела текст у корешка. Отдельно проверьте внутренние ссылки и закладки — при перестановке страниц они могут вести не туда.
qpdf --check out.pdf
pdftotext -f 1 -l 2 out.pdf - | head -30
pdfinfo out.pdf | grep -E "Pages|Page size|File size"
Если файл не открывается, проверьте его целостность и защиту. Снять пароль можно только с документа, который принадлежит вам: qpdf --decrypt --password=... in.pdf out.pdf. Пустой вывод pdftotext — нормальный признак скана без текстового слоя, его нужно распознать отдельно.
Частая ошибка — сохранение поверх исходника. Держите исходные сканы в отдельной папке: любая перестановка обратима, а вот испорченный файл восстановить нечем.
Чек-лист
- Сканы сняты в 300 dpi, для текста выбран режим grayscale.
- Все страницы повёрнуты правильно, пустые удалены.
- Порядок проверен по нумерации, а не «на глаз».
- Поля обрезаны одинаково, формат страниц единый.
- Файл сохранён под новым именем, исходники не тронуты.
- Результат открыт в другом просмотрщике и проверен на печати.
Итог
PDF Arranger закрывает рутинную работу со страницами без подписок и тяжёлых пакетов: склеить договор с приложением, убрать пустые листы из скана, развернуть перевёрнутый автоподатчик, разбить книгу на главы. Командная строка QPDF и poppler решает те же задачи пакетно. Связка «графический редактор для проверки, консоль для массовых операций» экономит время и снижает риск ошибки.