Гид по технологиям

Работа с PDF на Linux: создание, слияние, разбиение и шифрование

• 9 min read • Linux • Обновлено 20 Nov 2025
Работа с PDF на Linux и qpdf
Работа с PDF на Linux и qpdf

Иконка файла PDF на синем фоне.

Быстрые ссылки

  • The Portable Document Format

  • Creating PDF Files on Linux

  • The qpdf Command

  • Merging PDF Files

  • Splitting PDF Files

  • Rotating Pages

  • Encrypting and Decrypting

  • qpdf is an Excellent Tool

Что такое Portable Document Format

Portable Document Format (PDF) решает простую, но частую проблему: документ, созданный у вас на компьютере, при передаче другому пользователю может отображаться неверно или вовсе не открываться. PDF — это стандарт (ISO 32000), который инкапсулирует в файл и текст, и шрифты, и изображения, чтобы документ выглядел одинаково на любой платформе.

Ключевая идея: PDF предназначен не для полноценного редактирования содержимого, а для предсказуемого отображения. Если вам нужно изменить текст или макет — лучше редактировать исходный файл (например, .odt, .docx, .tex, .md) и затем экспортировать новый PDF. При этом структурные изменения PDF (перестановка страниц, слияние, извлечение страниц) обычно выполняются быстро и без потери качества.

Если коротко:

  • PDF гарантирует одинаковое отображение на разных ОС.
  • PDF инкапсулирует шрифты и ресурсы.
  • Для редактирования содержимого лучше использовать исходники.

Создание PDF на Linux

Большинство приложений в Linux умеют экспортировать в PDF «из коробки».

  • LibreOffice: одна кнопка на панели инструментов — экспорт в PDF.

Кнопка экспорта в PDF в LibreOffice Writer

  • Scribus: WYSIWYG-пакет для настольной издательской верстки, даёт точный контроль над PDF-выходом (калибровка цветов, спуски, экспорт PDF/X/PDF/A).

  • LaTeX (через Texmaker, TeX Live и др.): идеален для научных публикаций и сложных формул.

  • pandoc: конвертация из Markdown (и множества других форматов) в PDF через LaTeX-движок.

Пример простого рабочего процесса с pandoc. Если вы используете Markdown:

pandoc -o new.pdf raw-notes.md

pandoc обычно требует установленного LaTeX (TeX Live, Texmaker и т. п.) для генерации PDF. Установка Texmaker — удобный способ подтянуть нужные зависимости.

Открытие PDF, созданного с помощью pandoc

Советы при создании PDF:

  • Включайте шрифты в PDF (embedding) для гарантированного отображения.
  • Для долгого архивирования используйте PDF/A.
  • Для печати с контролем цветности выбирайте PDF/X.

Команды для установки qpdf

qpdf — утилита для структурных преобразований существующих PDF (слияние, извлечение страниц, поворот, шифрование/дешифрование). Она не редактирует внутренний текст, но очень хорошо управляет страницами и потоками.

Установка:

sudo apt install qpdf
sudo dnf install qpdf
sudo pacman -S qpdf

Основные концепции qpdf и полезные подсказки

Ключевая мысль: qpdf работает со страницами и потоками — он не «переписывает» содержимое в привычном смысле, а перестраивает PDF-структуру. Если команда не требует входного файла, используйте опцию --empty, чтобы сообщить qpdf, что источник страниц будут перечислены явно.

  • –empty: создать новый «пустой» документ и добавлять в него страницы из других файлов.
  • –pages: указывает, с каких файлов и какие страницы брать.
  • –: разделитель между параметрами и именем выходного файла.

Общие приёмы работы с диапазонами страниц: 1-3, 7, 11-13 и т. п.; диапазон 1-z означает «все страницы».

Слияние PDF

Чтобы объединить два файла в один:

qpdf --empty --pages first.pdf second.pdf -- combined.pdf

Разбор команд:

  • qpdf: вызов программы.
  • –empty: не используем stdin как входной PDF.
  • –pages: начинаем перечислять файлы и диапазоны страниц.
  • first.pdf second.pdf: вызываемые файлы (тут без указания диапазонов — берутся все страницы).
  • –: конец опций.
  • combined.pdf: выходной файл.

Можно использовать шаблоны (wildcards):

qpdf --empty --pages *.pdf -- all.pdf

Или выбирать конкретные диапазоны из каждого файла:

qpdf --empty --pages first.pdf 1-2 second.pdf 1 -- combined.pdf

Или создать «резюме» из длинного файла, взяв отдельные страницы:

qpdf --empty --pages large.pdf 1-3,7,11,18-21,55 -- summary.pdf

Страница 10 нового PDF — это страница 55 исходного файла

Совет: qpdf не перезаписывает существующий выходной файл — содержимое добавляется. Перед массовыми операциями проверяйте, существует ли целевой файл, чтобы не допустить слияния поверх старого результата.

Разбиение PDF

Чтобы разбить PDF на отдельные одностраничные файлы:

qpdf summary.pdf page.pdf --split-pages

Вы получите серию файлов page-0001.pdf, page-0002.pdf и т. д. (имена зависят от версии qpdf и текущего каталога).

Если нужно извлечь отдельные диапазоны в набор одностраничных PDF:

qpdf large.pdf section.pdf --pages large.pdf 1-5,11-14,60,70-100 -- --split-pages

Если же нужно извлечь диапазон и поместить его в один многостраничный файл — не используйте --split-pages:

qpdf --empty --pages large.pdf 8-13 -- chapter2.pdf

Использование ls для перечисления упорядоченных PDF-файлов

Поворот страниц

Для поворота используйте --rotate. Формат: --rotate=+90:1 — повернуть страницу 1 на 90° по часовой стрелке. Допустимы +90, +180, +270 (или отрицательные эквиваленты).

  • Можно указать несколько номеров страниц и диапазонов: --rotate=+90:1,3-5
  • 1-z — поворачивает все страницы.

Пример:

qpdf --rotate=+90:1 summary.pdf rotated1.pdf

PDF с первой страницей, повернутой на 90 градусов по часовой стрелке

Шифрование и расшифровка

PDF поддерживает два вида паролей:

  • user password — пароль для открытия файла (открывает файл в режиме просмотра);
  • owner password — пароль для изменения прав и настроек (позволяет снимать шифрование и менять ограничения).

Пример шифрования (256‑бит):

qpdf --encrypt hen.rat.squid goose.goat.gibbon 256 -- summary.pdf secret.pdf

Формат: --encrypt -- .

При открытии «secret.pdf» PDF‑просмотрщик потребует user password.

Важно: qpdf не изменяет исходный файл — он создаёт новый. После успешного шифрования решите, что делать с незашифрованной копией (удалить или поместить в надёжное хранилище).

Для расшифровки требуется owner password:

qpdf --decrypt --password=goose.goat.gibbon secret.pdf unlocked.pdf

Теперь unlocked.pdf можно открыть без пароля.

Безопасность и конфиденциальность:

  • Шифрование защищает содержимое при передаче и хранении, но помните о безопасности самих паролей.
  • Для юридически чувствительных документов выбирайте проверённые механизмы хранения ключей.
  • Удаление незашифрованных копий должно быть подтверждено политиками организации и, при необходимости, сопровождаться безопасным удалением (shred, srm, wipe).

Когда qpdf не подходит — ограничения и альтернативы

Кейсы, когда qpdf не подойдёт:

  • Нужно редактировать текст или графику внутри страницы (изменить слово, местоположение фрагмента) — qpdf не предназначен для этого.
  • Потребуются сложные правки метаданных, аннотирование или оптическое распознавание текста (OCR). Для этих задач нужны другие инструменты.

Альтернативные инструменты:

  • pdftk (PDF Toolkit): давно известный инструмент для манипуляций с PDF; удобен для простых задач, но может иметь ограничения с новыми форматами шифрования.
  • ghostscript (gs): мощный инструмент для работы с потоками PDF и PS, удобен для конвертации и оптимизации (уменьшение размера) и печатной подготовки.
  • poppler-utils (pdftoppm, pdftotext, pdfinfo): для извлечения текста, преобразования страниц в изображения и получения метаданных.
  • pdfcpu: современная утилита на Go для операций с PDF (включая шифрование и оптимизацию).
  • MuPDF / mutool: быстрый рендерер и набор утилит для манипуляции PDF.

Когда нужно редактировать содержимое страницы, подходы:

  • Конвертировать страницу в изображения (ImageMagick/convert или pdftoppm), править растровое изображение и затем заново собирать PDF — теряется векторная точность и текст.
  • Экспортировать исходники (если есть .odt/.docx/.tex), внести правки и экспортировать новый PDF — предпочтительный метод.

Шпаргалка (Cheat sheet)

  • Слияние всех PDF в каталоге в all.pdf:
qpdf --empty --pages *.pdf -- all.pdf
  • Извлечение страниц 1–5 и 10–12 в onefile.pdf:
qpdf --empty --pages source.pdf 1-5,10-12 -- onefile.pdf
  • Разбить на одностраничные файлы:
qpdf input.pdf page.pdf --split-pages
  • Повернуть все страницы на 90°:
qpdf --rotate=+90:1-z in.pdf out.pdf
  • Зашифровать файл (256 бит):
qpdf --encrypt userpass ownerpass 256 -- in.pdf out.pdf
  • Расшифровать файл (нужен owner password):
qpdf --decrypt --password=ownerpass in.pdf out.pdf
  • Посмотреть информацию о PDF:
pdfinfo file.pdf

(утилита из пакета poppler-utils)

SOP: стандартная последовательность действий для безопасного слияния и распределения PDF

  1. Подготовка: проверьте исходники и метаданные у исходных PDF (pdfinfo).
  2. Создание: объедините или извлеките страницы с помощью qpdf и создайте целевой файл.
  3. Проверка: откройте результат в PDF‑просмотрщике и проверьте порядок и диапазоны страниц.
  4. Шифрование: при необходимости зашифруйте файл с 256-битным ключом.
  5. Доставка: передавайте файл по зашифрованному каналу (SFTP, PGP, TLS‑сервис).
  6. Удаление/архив: решите, что делать с исходниками: переместить в архив, зашифровать, или удалить безопасным способом.

Критерии приёмки

  • Результирующий PDF открывается в целевых просмотрщиках (Evince, Okular, Adobe Reader).
  • Порядок страниц соответствует заданию.
  • При шифровании файл требует пароль для открытия, если это требовалось.
  • Метаданные (если важны) сохранены или обновлены согласно требованию.

Роль‑ориентированные контрольные списки

Для системного администратора:

  • Установить qpdf через пакетный менеджер и поддерживать версию в актуальном состоянии.
  • Настроить скрипты автоматического бэкапа и безопасного удаления.
  • Документировать процедуры шифрования и хранения паролей (использовать менеджеры секретов).

Для автора документа:

  • Использовать исходники (Markdown, LaTeX, ODT) и экспортировать финальное PDF.
  • Включать шрифты и проверять соответствие стандартам печати, если требуется.

Для исследователя/редактора:

  • Проверять нумерацию и ссылки внутри PDF.
  • При формировании сборника — проверять индекс и оглавление на корректность ссылок.

Совместимость, ограничения форматов и заметки о шифровании

  • qpdf поддерживает большинство современных PDF‑версий, но при работе с очень старым или очень новым нестандартным PDF возможны несовместимости.
  • Стандарт ISO 32000 определяет структуру PDF; некоторые расширения могут быть проприетарными.
  • При выборе длины ключа шифрования предпочтительнее 256 бит; 128 бит иногда нужен только для совместимости со старыми просмотрщиками.

Отладка и распространённые ошибки

  • Проблема: выходной файл не создаётся или пуст. Причина: неверно указан разделитель -- или опции --pages неверно сформированы. Решение: проверьте порядок аргументов и наличие --.

  • Проблема: при слиянии страницы идут в неправильном порядке. Причина: порядок файлов в команде. Решение: явно укажите порядок и диапазоны.

  • Проблема: пароль не работает при расшифровке. Причина: перепутан user/owner пароли. Решение: попытайтесь оба варианта, проверьте правильность регистров и символов.

Mental models и эвристики при выборе инструмента

  • Если задача — структурная (страницы, порядок, шифрование) — qpdf.
  • Если задача — визуальная/печатная подготовка (цвета, профили, PDF/X) — Scribus или Ghostscript.
  • Если задача — редактирование текста внутри страниц — возвращайтесь к исходникам.
  • Для массовых автоматизированных процессов выбирайте инструменты с консистентным CLI и логированием (qpdf, pdfcpu).

Пример сценариев и тесты приёмки

Тестовый набор (acceptance):

  1. Слияние: возьмите first.pdf (2 страницы) и second.pdf (1 страница); выполните слияние и проверьте, что итоговый файл содержит 3 страницы.
  2. Разбиение: на основе summary.pdf выполните --split-pages и проверьте наличие всех файлов и их последовательность.
  3. Поворот: выполните поворот первой страницы и проверьте визуально.
  4. Шифрование/дешифровка: зашифруйте и расшифруйте с известными паролями; убедитесь, что открытие зашифрованного файла требует пароль.

Краткий сравнительный справочник (когда выбирать что)

  • qpdf — быстрое структурное изменение; минимальное вмешательство в содержимое.
  • pdftk — простые задачи, исторически популярный; может уступать по совместимости с новыми шифрами.
  • ghostscript — оптимизация, конвертация, распечатка, управление потоками PostScript/PDF.
  • poppler-utils — извлечение текста и изображений, анализ метаданных.
  • pdfcpu — современная альтернатива с расширенным набором операций.

Небольшая визуальная подсказка: как выбрать инструмент

flowchart TD
  A[Нужна структурная операция?] -->|Да| B[qpdf или pdftk]
  A -->|Нет| C[Изменить содержимое страницы?]
  C -->|Да| D[Использовать исходники или конвертировать в изображение]
  C -->|Нет| E[Оптимизация/печать]
  E --> F[ghostscript]
  B --> G{Шифрование или разбивка}
  G -->|Шифрование| B
  G -->|Разбивка| B

Заключение

qpdf — надёжный инструмент для большинства задач по структурной обработке PDF на Linux. Он не заменит редактор содержимого, но прекрасно справляется со слиянием, разбиением, поворотом страниц и управлением шифрованием. В сочетании с LibreOffice, Scribus, LaTeX и утилитами из набора poppler вы получите гибкий набор инструментов для создания, подготовки и безопасной передачи PDF‑документов.

Ресурсы для дальнейшего чтения: официальная документация qpdf и мануалы по pandoc/LaTeX/ghostscript.

Важно: перед массовой автоматизированной обработкой документов тестируйте сценарии на копиях и храните резервные копии исходников.


Краткое резюме:

  • qpdf удобен для структурных преобразований PDF.
  • Для редактирования содержимого лучше править исходники.
  • Всегда проверяйте итоговый файл в целевых просмотрщиках.
  • При работе с конфиденциальными данными используйте 256‑битное шифрование и безопасное хранение паролей.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро