Перейти к содержимому
LeedyBox
Поддержать

Как разделить PDF и извлечь страницы

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

Когда пригодится разделение

  • Отправка только нужной части, например двух страниц 48-страничного договора, которые нужно подписать.
  • Формы загрузки, в которых ограничен размер файла или количество страниц.
  • Разбор пакетного скана: 30 чеков, пропущенных через сканер за один раз, оказываются в одном файле. Если каждый чек занимает одну страницу, режим «Извлечь все страницы» даст по отдельному файлу на каждый чек.
  • Подготовка страниц для другого инструмента: инструмент «PDF в JPG» преобразует все страницы в один ZIP-архив или сохраняет страницы по одной, каждую отдельным щелчком. Если сначала извлечь страницы 5–12 из 80-страничного отчёта, получится ZIP-архив из 8 изображений, а не из 80 (см. руководство «Как конвертировать страницы PDF в JPG или PNG»).

Если нужно исправить порядок страниц или удалить несколько из них, обратитесь к руководству «Как изменить порядок, повернуть и удалить страницы PDF».

Два режима и три вида результата

Что именно вы скачаете, зависит от вкладки и от количества выбранных страниц. Для файла report.pdf:

Режим Результат Имя файла
«Извлечение заданного диапазона», одна страница PDF из одной страницы report_page_7.pdf
«Извлечение заданного диапазона», несколько страниц Один PDF со всеми выбранными страницами в исходном порядке report_extracted.pdf
«Извлечь все страницы» Отдельный PDF для каждой страницы в ZIP-архиве report_all_pages.zip с файлами report_page_1.pdf, report_page_2.pdf …

Поэтому 1-3, 5, 8-10 даёт один файл из 7 страниц, а не три файла. Чтобы получить разделы отдельными файлами, извлекайте их по очереди: после скачивания документ остаётся загруженным, так что введите 1-3, скачайте файл, затем введите 5 и скачайте снова. Любой файл, извлечённый из нескольких страниц, называется report_extracted.pdf, а к повторяющимся именам браузеры обычно добавляют номер, поэтому переименовывайте файлы по ходу работы.

Пошаговая инструкция

  1. Откройте инструмент «Разделить PDF» и выберите один PDF в области Выберите PDF-файл или перетащите его сюда. Если перетащить несколько файлов, будет использован только первый.
  2. Подождите, пока отрисуются миниатюры всех страниц. После этого над вкладками появятся имя файла, его размер и количество страниц, а все страницы будут изначально выбраны.
  3. На вкладке Извлечение заданного диапазона введите номера в поле Диапазон страниц (например: 1-3, 5, 8-10) или щёлкайте по миниатюрам. Изначально в поле указан весь диапазон, например 1-40, поэтому сначала очистите его или нажмите Снять выделение. Кнопка Выбрать все снова выбирает все страницы, а счётчик показывает, например, «Выбрано 7 из 40 страниц».
  4. Либо перейдите на вкладку Извлечь все страницы: в этом режиме выбор страниц не учитывается.
  5. Нажмите Разделить PDF и скачать; кнопка Изменить файл позволяет начать заново.

При щелчках по миниатюрам содержимое поля диапазона переписывается в сжатом виде: страницы 2, 3, 4 и 9 превращаются в 2-4, 9. Миниатюры отрисовываются в низком разрешении, поэтому содержимое проверяйте уже в скачанном файле.

Как записывать диапазоны страниц

Номера обозначают позиции страниц в файле, начиная с 1, — так же, как на подписях под миниатюрами.

  • Разделяйте элементы запятыми, а для диапазона используйте дефис. Пробелы вокруг них роли не играют.
  • Порядок и повторы не важны: 8-10, 1-3, 2 даёт страницы 1, 2, 3, 8, 9, 10 в исходном порядке.
  • 10-8 понимается как диапазон с 8 по 10, а 38-45 в 40-страничном файле заканчивается на странице 40. Отдельный номер больше последней страницы, как и 0, игнорируется.
  • Открытые диапазоны вроде 5- или -3 игнорируются; пишите 5-40.
  • Учитывается только обычный дефис. Короткое тире, скопированное из текстового редактора, как в 1–3, выбирает только страницу 1; то же самое происходит с 1 3 и 1;3.

Напечатанные номера страниц часто не совпадают с позициями в файле. Если в отчёте перед страницей 1 идут обложка и четыре страницы вводной части (i–iv), то напечатанная страница 12 будет 17-й страницей файла (1 + 4 + 12). Перед скачиванием проверьте, какие миниатюры выделены.

Почему части вместе могут весить больше оригинала

Шрифты и изображения, которые встречаются на многих страницах, например встроенный шрифт или логотип в шапке, в оригинале обычно хранятся один раз и используются всеми страницами совместно. Каждому новому файлу нужна собственная копия каждого ресурса, на который ссылаются его страницы. pdf-lib копирует эти ресурсы как есть: она не урезает шрифты до символов, которые встречаются на скопированной странице, и не отбрасывает ресурсы, которые указаны в описании страницы, но на ней не используются. Поэтому одна страница может содержать подмножество шрифта, созданное для всего документа, а в файлах, где у всех страниц общий список ресурсов, — вообще все шрифты и изображения из этого списка.

Для теста мы создали с помощью Python-библиотеки ReportLab 40-страничный текстовый отчёт формата A4 (два шрифта DejaVu, встроенные как подмножества, и JPEG-логотип 900 × 240 пикселей на каждой странице) и разделили его в Node.js с помощью pdf-lib 1.17.1 — той же версии библиотеки, которую загружает инструмент LeedyBox, — используя те же вызовы:

Результат Размер
Оригинал, 40 страниц Около 151 КБ
Каждый одностраничный PDF Около 86 КБ
Все 40 страниц отдельными файлами (ZIP) Около 3,4 МБ, примерно в 23 раза больше оригинала
1-3, 5, 8-10 одним PDF из 7 страниц Около 94 КБ

Файл, похожий на скан, повёл себя иначе: десять страниц A4, созданных с помощью Pillow из JPEG-изображений в оттенках серого размером 1240 × 1754 пикселя (150 dpi), заняли около 2,6 МБ, и десять отдельных страниц вместе — тоже около 2,6 МБ, потому что общих ресурсов у них нет. У вас цифры будут другими, но в целом картина такая:

  • При уменьшении числа страниц сканы уменьшаются примерно пропорционально (наш фрагмент скана из 7 страниц занял около 1,8 МБ); у текстовых документов остаётся базовый размер за счёт шрифтов и общих изображений.
  • Несколько страниц в одном файле обычно занимают меньше места, чем те же страницы в отдельных файлах.
  • Инструмент помещает PDF-файлы в ZIP-архив без сжатия, поэтому архив примерно равен по размеру файлам, которые в нём лежат.

Если файл всё ещё слишком большой, см. руководство «Как сжать PDF».

Что сохраняется в новых файлах, а что теряется

Страницы копируются, а не отрисовываются заново: текст остаётся выделяемым, изображения не пересжимаются, размер и поворот страниц сохраняются. Веб-ссылки на скопированных страницах тоже сохраняются. А вот то, что относится к документу в целом, не копируется, и от этого зависят некоторые возможности страниц:

  • Закладки и метки страниц (собственная нумерация вроде i, ii, iii).
  • Название, автор и другие свойства документа. В новых файлах в качестве программы-производителя (Producer) указана pdf-lib, а в качестве даты создания — время разделения.
  • Теги доступности, то есть структура, по которой программы экранного доступа определяют заголовки и порядок чтения: даже если оригинал размечен тегами, в новых файлах их нет.
  • Внутренние ссылки, например пункты оглавления, могут никуда не вести, если целевая страница не вошла в новый файл или если ссылка использует именованное назначение (named destination), которое хранится на уровне документа. Поля форм могут перестать заполняться, потому что форма, к которой они относятся, тоже определяется на уровне документа.
  • Цифровая подпись перестаёт быть действительной: она охватывала точные байты исходного файла, поэтому подпись, которая по-прежнему видна на скопированной странице, ничего не подтверждает в отношении нового файла. Сохраните подписанный оригинал.

Разделение не подходит для удаления конфиденциальных страниц

В тесте с pdf-lib 1.17.1 мы извлекли страницу 1 из шестистраничного PDF, в котором на странице 1 была ссылка на страницу 5. Новый файл показывал одну страницу, и программа извлечения текста нашла только текст страницы 1, однако содержимое страницы 5 хранилось внутри файла как неиспользуемые данные, которые может прочитать любой, кто изучит внутреннее устройство файла. Оглавления и перекрёстные ссылки могут таким образом подтягивать другие страницы. Содержимое, скрытое на скопированной странице, например текст под чёрным прямоугольником или за пределами видимой области, тоже копируется. Для конфиденциальных материалов используйте функцию скрытия данных (redaction) или очистки документа в редакторе PDF либо отправляйте изображения страниц, созданные инструментом «PDF в JPG». Изображение передаёт только то, как страница выглядит после отрисовки, без текстового слоя и скрытых объектов, однако текст на нём уже нельзя будет выделить или найти поиском.

Частые проблемы и их решение

  • Сообщение «… — PDF-файл, который браузер не может прочитать или который поврежден». Файл может быть повреждён или защищён паролем на открытие; поля для ввода пароля в инструменте нет. Если это допустимо, сохраните незащищённую копию в приложении, где можно ввести пароль.
  • Миниатюры появляются, но при разделении возникает ошибка, в тексте которой упоминается шифрование (encrypted). PDF открывается без пароля, но зашифрован: именно так хранятся настройки разрешений, например запрет на редактирование или печать. Предпросмотр отрисовывается с помощью PDF.js, а разделение выполняет pdf-lib, которая в том виде, в каком её вызывает инструмент, отказывается загружать зашифрованные файлы. Инструмент не снимает и не обходит такую защиту.
  • «Выберите хотя бы одну страницу для извлечения». Не выбрано ни одной допустимой страницы, например после нажатия Снять выделение или если указан открытый диапазон.
  • Извлекаются не те страницы. Проверьте, нет ли тире вместо дефиса, не пропущена ли запятая и не указаны ли напечатанные номера страниц вместо позиций в файле.
  • Длинные файлы обрабатываются медленно. Элементы управления появляются только после того, как отрисованы все миниатюры, а до этого индикатор выполнения остаётся примерно на пятой части шкалы, поэтому может показаться, что длинный файл завис. Кроме того, режим «Извлечь все страницы» собирает все файлы и ZIP-архив в памяти. Сам инструмент не ограничивает размер файла, но телефон может не справиться с очень большим файлом, с которым справляется компьютер.

Перед отправкой файлов

Проверьте у каждого файла количество страниц, первую и последнюю страницы и размер, а также дайте ему понятное имя, например contract_signature_pages.pdf. Сохраните оригинал. Чтобы снова объединить разделы, используйте инструмент «Объединить PDF». Если в оригинале нет напечатанных номеров страниц, а извлечённый раздел должен начинаться, скажем, с 31, см. руководство «Как добавить номера страниц в PDF». Страница загружает библиотеки PDF.js, pdf-lib и JSZip с самого leedybox.com, но сам файл читается и разделяется в вашем браузере и не отправляется на сервер LeedyBox.

Часто задаваемые вопросы

Можно ли автоматически разбить PDF на части по 30 страниц?

Автоматической функции для этого нет. Извлеките каждую часть в режиме «Извлечение заданного диапазона»: для файла из 120 страниц понадобятся диапазоны 1-30, 31-60, 61-90 и 91-120, то есть четыре скачивания.

Можно ли сразу получить страницы 1–3 и страницу 7 двумя отдельными файлами?

За один шаг — нет. В режиме «Извлечение заданного диапазона» каждое скачивание создаёт один файл, поэтому сначала извлеките 1-3, а затем 7. Режим «Извлечь все страницы» выдаёт каждую страницу отдельным файлом.

Можно ли изменить порядок страниц при извлечении?

Нет. Страницы сохраняют исходный порядок. Переставить их в полученном файле можно с помощью инструмента «Упорядочить страницы PDF».

Снижается ли качество при разделении?

Нет. Страницы копируются с помощью pdf-lib, а не отрисовываются заново, поэтому текст и изображения остаются прежними. Потеряться могут части, относящиеся ко всему документу, например закладки и метки страниц, а ссылки или поля форм могут перестать работать, как описано выше.

Почему программа просмотра показывает страницу 1 там, где напечатан номер 23?

Программа просмотра считает позиции в новом файле, в котором нет меток страниц. Напечатанные номера — часть содержимого страницы, и они не меняются. Инструмент «Нумерация страниц PDF» может нанести новые номера, начиная с выбранного вами числа, но он размещает их поверх страницы и не удаляет напечатанные, поэтому подходит для страниц, на которых номеров ещё нет.