Как объединить PDF, никуда их не загружая
Почти все бесплатные PDF-сервисы сначала просят залить файлы к ним на сервер. Разбираем, чем вы за это платите и как склеить PDF офлайн во вкладке браузера.
Наберите «объединить PDF» — и получите страницу сайтов, работающих одинаково. Выбираете файлы, смотрите на полоску прогресса, ждёте, пока сервер где-то там вернёт ссылку на скачивание. Работает. Но сама привычка странная, если вспомнить, что люди обычно склеивают: подписанные договоры, выписки из банка, скан паспорта, медицинские справки ребёнка для школы.
Загрузка на сервер — не техническая необходимость. Это бизнес-модель.
Что даёт владельцу сайта эта загрузка
Обработка на сервере даёт три вещи, которых вкладка браузера дать не может.
Она создаёт воронку. Файл уже на их диске, полдела сделано — и тут появляется таймер «подождите 30 минут или переходите на Pro». Этот таймер не про вычисления: склейка сорокастраничного PDF занимает у ноутбука доли секунды.
Она создаёт квоту, которую можно продать. Бесплатно — две задачи в час, за деньги — сколько угодно. Дефицит придуман.
И она создаёт вопрос о данных, на который такие сайты отвечают одинаково успокаивающе и непроверяемо: файлы удаляются через час. Может, и удаляются. Проверить вы это никак не можете, а обещание живёт ровно до следующего раунда инвестиций или продажи компании.
Часть сервисов действительно приличные. У части были утечки. Суть в том, что вы выдаёте кредит доверия просто так — задача не требует сервера.
Как это делается локально
PDF — это контейнер: заголовок, куча пронумерованных объектов, дерево, описывающее, какие объекты являются страницами, и таблица байтовых смещений, указывающая на всё перечисленное.
Склеить два документа — значит перенумеровать объекты второго файла, чтобы они не столкнулись с объектами первого, подвесить оба списка страниц под один новый корень и записать свежую таблицу смещений.
И всё. Никакого перекодирования, растеризации, распаковки содержимого страниц. Пиксели отсканированной страницы переносятся теми же самыми байтами, в том же сжатии, которое выбрал сканер. Поэтому склеенный файл в принципе не может выглядеть мутнее исходников — а если инструмент портит ваши сканы, значит, он делает намного больше работы, чем нужно.
Объединение PDF делает это на JavaScript, в вашей вкладке. Откройте страницу, выключите Wi-Fi, склейте файлы. Документ никуда не уедет, потому что ехать ему некуда.
Что при склейке теряется
Честно про ограничения — потому что большинство инструментов о них молчит.
Содержимое страниц, изображения, ссылки и аннотации переносятся целиком. Закладки, описания полей форм AcroForm и именованные назначения — нет: они живут в каталоге документа, а склейка создаёт каталог заново. Adobe Acrobat умеет переписывать и эти три структуры, бесплатный браузерный инструмент обычно нет.
Зашифрованные PDF отклоняются сразу, а не обрабатываются наполовину. Если файл под паролем — откройте его, сохраните копию без защиты и склеивайте её.
Так что если вы собираете главы отчёта с самодельным оглавлением, будьте готовы к пустой панели закладок. А если склеиваете счета, сканы и подписанные страницы — то есть делаете ровно то, чем является подавляющее большинство склеек, — не заметите никакой пропажи.
Про порядок файлов
Порядок склейки — это и есть порядок страниц, сверху вниз. Именно здесь чаще всего ошибаются. Расставьте файлы до нажатия кнопки: переделывать потом — значит начинать заново. Сортировка по имени в проводнике почти никогда не совпадает с нужной, особенно когда page10.pdf оказывается раньше page2.pdf.
Перетащите файлы в объединение PDF, расставьте порядок и скачайте результат. Без аккаунта, без водяных знаков, без почасовых лимитов и без копии вашего договора на чужом диске.