Tips & Tricks

Как разделить PDF-файл по размеру файла вместо количества страниц

Большинство инструментов Split PDF разделяют документы по количеству страниц. Скажите инструменту разбивать каждые 10 страниц, и он создаст набор кусков по 10 страниц независимо от того, сколько данных содержит каждая страница. Для документов, в которых плотность содержимого страниц сильно различается, разделение по количеству страниц создает файлы совершенно разных размеров. Раздел текста на 10 страниц может занимать 100 КБ. Раздел на 10 страниц с фотографиями в высоком разрешении может занимать 25 МБ. Разделение по размеру файла вместо количества страниц создает выходные файлы, каждый из которых имеет определенный лимит в мегабайтах, что фактически обеспечивают серверы электронной почты, формы загрузки и системы управления документами.

Разделение по размеру файла более сложное, чем разделение по количеству страниц, поскольку перед выполнением разделения инструмент должен оценить, сколько страниц укладывается в целевой размер. Оценка никогда не бывает точной, поскольку сжатие PDF и дедупликация объектов влияют на конечный размер файла. Инструмент разделяет консервативно, создавая файлы немного меньше целевого, и последний файл содержит все оставшиеся страницы.

Инструменты разделения PDF Batch WukongPDF предоставляют опции разделения как по количеству страниц, так и по размеру файла для рабочих процессов распространения документов.

How to Split a PDF by File Size Instead of Page Count

Почему разделение файлов по размерам важно для распространения

Ограничения на вложения электронной почты являются наиболее распространенной причиной разделения размера файла. Gmail ограничивает размер вложений до 25 МБ. Для большинства планов Outlook ограничен 20 МБ. Корпоративные почтовые серверы часто устанавливают еще более низкие ограничения, иногда 10 или 5 МБ. PDF-файл размером 60 МБ, который необходимо отправить по электронной почте, должен быть разделен на фрагменты, соответствующие лимиту вложений получателя. Разделение по количеству страниц может привести к созданию одного фрагмента размером 22 МБ, а другого — 38 МБ, и ни один из них не может быть отправлен по электронной почте. Разделение по размеру файла гарантирует, что каждый фрагмент не превышает установленного лимита.

Онлайн-формы загрузки также устанавливают ограничения на размер файлов. Правительственные порталы, судебные системы подачи заявок и сайты заявок на работу обычно ограничивают размер загрузки 5 МБ, 10 МБ или 25 МБ. Ограничение отображается на странице загрузки, и его превышение приводит к ошибке после того, как загрузка уже заняла время. Предварительное разделение PDF-файла на фрагменты соответствующего размера гарантирует успешную загрузку с первой попытки.

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

WukongPDF

Попробуйте разделить PDF

Никакой установки не требуется. Работает прямо в вашем браузере.

Начать →

Метод 1: Разделение Adobe Acrobat Pro по размеру

Acrobat Pro включает опцию разделения файла по размеру в своем инструменте «Разделить документ». Откройте PDF-файл и перейдите в «Инструменты», «Упорядочить страницы», затем нажмите «Разделить». В диалоговом окне разделения выберите «Размер файла» в раскрывающемся списке «Разделение». Введите максимальный размер файла в мегабайтах. Acrobat оценивает, сколько страниц умещается в этом размере, и соответствующим образом разделяет их.

Алгоритм разделения по размеру в Acrobat хорошо работает для документов с относительно однородными страницами. Для документов с сильно различающимися размерами страниц оценка может отличаться на 10–20 процентов, поскольку Acrobat не может точно предсказать, насколько сжатие вывода уменьшит вклад каждой страницы в размер файла. После разделения проверьте фактические размеры файлов выходных фрагментов. Если какой-либо фрагмент превышает целевой размер, немного уменьшите целевой размер и повторно разделите его.

Acrobat присваивает выходным файлам имена, добавляя суффикс к исходному имени файла, например Document_Part1.pdf, Document_Part2.pdf. Соглашение об именах ясно дает понять, что файлы являются частями целого, и указывает правильный порядок чтения. Для документов, которые получатель будет повторно объединять, включите в первую часть титульную страницу, объясняющую, сколько частей следует ожидать и как их собрать.

Метод 2: разделение командной строки с помощью pdftk

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

Сначала используйте pdftk, чтобы разбить PDF-файл на отдельные файлы страниц: pdftk input.pdf Burst. В результате создаются файлы pg_0001.pdf, pg_0002.pdf и т. д. Используйте системную команду, например ls -l или du, чтобы измерить размер каждого файла подкачки. Перебирайте страницы по порядку, накапливая размеры до тех пор, пока следующая страница не превысит целевое значение. Когда цель будет достигнута, объедините накопленные страницы в файл фрагмента с помощью pdftk cat, сбросьте аккумулятор и продолжите работу со следующим фрагментом.

На практике подход pdftk бесплатен и поддерживает сценарии, что делает его пригодным для пакетной обработки и автоматизации на стороне сервера. Точность зависит от измерения размера файла на страницу. Отдельные страницы, измеренные как отдельные файлы, могут быть немного больше, чем те же страницы, объединенные в один PDF-файл, поскольку общие ресурсы, такие как шрифты, дублируются в отдельных файлах страниц. Конечный размер файла фрагмента будет несколько меньше суммы размеров отдельных страниц.

Метод 3: Написание сценариев Python с помощью pikepdf

На практике библиотека pikepdf обеспечивает программный контроль разделения PDF-файлов с точностью до байта. Сценарий Python открывает PDF-файл, перебирает страницы и использует API pikepdf для создания нового PDF-файла для каждого фрагмента. Скрипт отслеживает совокупный несжатый размер страниц, добавленных в текущий чанк, и запускает новый чанк, когда добавление следующей страницы превышает целевой размер.

pikepdf обеспечивает доступ к потокам необработанного содержимого страницы, позволяя точно оценить размер до записи выходного файла. Сценарий также может сжимать каждый фрагмент с определенными настройками, например, сжатием изображений в формате JPEG, чтобы дополнительно контролировать размер выходного файла. Подход Python обрабатывает крайние случаи, например, когда одна страница превышает целевой размер, путем индивидуального сжатия этой страницы, а не сбоя.

Обработка пограничных случаев при разделении файлов по размеру

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

Для документов с множеством небольших страниц алгоритм разделения по размеру может создавать фрагменты с очень разным количеством страниц. Блок 1 может содержать 50 страниц текста. Блок 2 может содержать 3 страницы фотографий. Получателя следует проинформировать, что фрагменты различаются по количеству страниц, поскольку критерием разделения является размер файла, а не количество страниц.

МетодКак это работаетНаилучший вариант для
Acrobat Pro, разделение по размеруУкажите максимальное количество МБ на выходной файлПользователи графического интерфейса, периодические разделения
pdftk с оценкой размераПеребирать страницы до тех пор, пока не будет достигнут целевой размер.Сценарные рабочие процессы, бесплатно
Питон + щукаpdfЧтение размеров страниц, разделение, когда совокупное значение превышает целевой показательПользовательская логика, пакетная обработка

Проверка разделенного вывода перед распространением

После разделения по размеру файла откройте каждый выходной фрагмент и убедитесь, что первая и последняя страницы верны. Разделение должно происходить по краям страницы, а не в середине страницы. Убедитесь, что общее количество страниц во всех фрагментах равно количеству страниц исходного документа. Несоответствие указывает на то, что страница была удалена во время разделения.

Проверьте размер файла каждого фрагмента по сравнению с целевым. Куски должны находиться на уровне цели или немного ниже нее. Если фрагмент превышает целевой показатель более чем на 5 процентов, алгоритм разделения недооценивает выходной размер. Уменьшите цель на 10 процентов и повторно разделите. Запас от 5 до 10 процентов учитывает изменчивость сжатия и накладные расходы на общие ресурсы.

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

Автоматизация повторяющегося разделения файлов по размеру

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

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

Глядя на это в целом, в процессах документооборота для корпоративных систем управления документами автоматизация разделения может интегрироваться с системным API для регистрации каждого фрагмента как связанного компонента родительского документа. Система отслеживает, что исходный документ размером 60 МБ был разделен на три части по 20 МБ для распространения, и может собрать их заново по требованию пользователей, которым нужен полный файл.

Повторная сборка разделенных файлов на стороне получателя

Обычно получателю документа, разделенного по размеру файла, требуются четкие инструкции по повторной сборке. Большинство инструментов слияния PDF-файлов могут объединять фрагменты обратно в исходный документ, если они объединены в правильном порядке. Имена файлов фрагментов должны указывать порядок: Document_Part1_of_3.pdf, Document_Part2_of_3.pdf и т. д. Получатель открывает инструмент слияния, добавляет файлы по порядку и создает повторно собранный документ.

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

После повторной сборки получатель должен убедиться, что количество страниц объединенного документа соответствует количеству страниц, указанному в манифесте. Несоответствие указывает на отсутствие или дублирование фрагмента. Количество страниц манифеста является авторитетным источником подтверждения полной повторной сборки.

WukongPDF

Попробуйте разделить PDF

Никакой установки не требуется. Работает прямо в вашем браузере.

Начать →