coru

Работа с документами

Как извлечь и объединить страницы PDF, не перепутав номера

qpdf умеет копировать выбранные страницы в новый PDF на вашем компьютере. Диапазоны считают страницы от начала файла, с 1. Если перед напечатанной страницей 1 стоят обложка и оглавление, диапазон 1-2 скопирует именно их. Сначала сопоставьте номера с позициями в файле.

Позиции 1–6 в report.pdf имеют номера на листах i, ii, 1, 2, 3 и 4. Выбранные позиции 3, 4 и 6 имеют номера 1, 2 и 4; позиция 2 в appendix.pdf добавляет A-2.
В нашем примере qpdf выбирает позиции 3, 4 и 6 из report.pdf, затем позицию 2 из appendix.pdf. На полученных листах напечатаны 1, 2, 4 и A-2. Считайте от первой страницы каждого исходного файла. Иллюстрация: Coru — оригинальная схема. Авторские текст и геометрия SVG Coru, локальный рендеринг; сторонние изображения и снимки программ не использованы.

Что нужно собрать

Нужны напечатанные страницы 1, 2 и 4 из отчёта, затем страница приложения A-2. В нашем вымышленном отчёте из шести страниц позициям 1–6 соответствуют метки i, ii, 1, 2, 3, 4. В приложении три страницы: A-1, A-2, A-3. Значит, нужны позиции 3, 4, 6 отчёта и позиция 2 приложения.

Подготовьте рабочую папку

Установите qpdf по официальной инструкции загрузки. Откройте терминал в папке с копиями report.pdf и appendix.pdf. Сохраните оригиналы. Выберите ещё не занятые имена результатов: qpdf может перезаписать существующий выходной файл. Команды обрабатывают локальные файлы и не требуют загрузки документов на сайт.

Пример подходит для обычных PDF, когда требуется содержимое выбранных страниц. Для документов с цифровой подписью, интерактивных форм или обязательным сохранением тегов доступности нужен процесс, который явно поддерживает эти возможности. Такие случаи мы не проверяли.

Соберите документ из четырёх страниц

bash

qpdf --empty --pages "report.pdf" 3-4,6 "appendix.pdf" 2 -- "packet.pdf"

3-4 включает обе позиции, а запятая добавляет позицию 6. Каждый диапазон относится к имени файла непосредственно перед ним. Отдельный -- завершает выбор страниц; packet.pdf — выходной файл.

Проверьте нумерацию перед изменением команды

Позиция — место страницы в файле при счёте с 1. Напечатанный номер — видимая часть содержимого. Метка страницы PDF — отдельные метаданные, которые некоторые просмотрщики показывают в навигации. Эти значения могут различаться. В нашем образце напечатанные номера совпадают с метками PDF, но отличаются от позиций.

Отсчитайте страницы от начала по миниатюрам или абсолютному счётчику просмотрщика. На каждой выбранной позиции проверьте видимый заголовок. Не считайте номер, введённый в просмотрщике, заведомо абсолютной позицией: некоторые программы принимают метки страниц.

Результат команды: Scope (напечатано 1), Checklist (2), Decision (4), Required attachment (A-2). Начальные страницы отчёта, Draft note (3) и остальные страницы приложения в него не попадают. Для своих файлов сначала составьте собственное соответствие номеров и позиций.

Извлеките только две соседние страницы отчёта

bash

qpdf --empty --pages "report.pdf" 3-4 -- "excerpt.pdf"

Получится один PDF из двух страниц на позициях 3 и 4. Команда не создаёт отдельный файл для каждой страницы.

Зачем в начале --empty

--empty начинает с пустого основного документа и добавляет выбранные страницы. Первый исходный файл при этом не становится образцом структуры всего документа. В нашем тесте метки скопированных страниц сохранились, а закладки и название документа — нет.

Документация qpdf указывает ограничения при переносе общих свойств документа во время выбора страниц. Не рассчитывайте на автоматическое перестроение закладок, форм или тегов под новую подборку. --empty не предназначен для гарантированного удаления конфиденциального содержимого; эта проверка не устанавливает, что файл можно безопасно передавать другим людям.

Проверьте сохранённый результат

bash

qpdf --show-npages "packet.pdf"
qpdf --check "packet.pdf"

Для этого примера первая команда должна вывести 4. Вторая проверяет структуру PDF. Успешная --check не подтверждает, что выбрано нужное содержимое.

Откройте результат и сравните с исходниками

  • Убедитесь, что страниц четыре и порядок правильный. На каждой проверьте характерный заголовок, особенно на границе отчёта и приложения.
  • Сравните поворот, края страниц, мелкий текст и важные числа с оригиналами. Если нужен поиск по тексту, скопируйте строку.
  • В этом примере ожидаются метки 1, 2, 4, A-2. Пропуски намеренные: копирование страниц не меняет номера, напечатанные на них.
  • Если qpdf сообщает о предупреждениях или ошибках, прочитайте их перед использованием файла. Если команда недоступна, проверьте установку и выполните qpdf --version: изменение диапазона не исправит отсутствие программы.

Что мы проверили на практике

21 октября 2026 года Coru создала два PDF с метками страниц и выполнила команды qpdf 11.9.0 на Ubuntu 24.04 с отключённой после подготовки сетью. В packet.pdf оказалось четыре страницы с метками 1, 2, 4, A-2, в excerpt.pdf — две с метками 1, 2. Выбор позиций 1-2 вместо них дал i и ii.

У каждой выбранной страницы совпали извлечённый текст, размеры и пиксели изображения при отрисовке в 150 dpi. Хеши исходных файлов не изменились. Это результаты для наших простых авторских образцов, а не гарантия сохранения свойств любого PDF и не проверка интерфейса Windows или Mac.

Источники и материалы

Помогите улучшить руководство

← Все заметки