Договор из нескольких сканов, отчёт из отдельных выгрузок, подборка чеков — часто нужно соединить сканы документов и несколько PDF в один файл и задать порядок страниц. Инструмент «Объединить» в pdfredX склеивает файлы прямо в браузере: вы перетаскиваете страницы в нужной последовательности и скачиваете единый PDF. Ничего не загружается на сервер.
Шаг 01. Загрузить PDF-файлы
Откройте pdfredx.com и перетащите два или больше PDF в зону загрузки — или выберите их через проводник. Файлы читаются локально через FileReader, страницы рендерятся на Canvas через PDF.js. Ни один байт не уходит на сервер.
Каждый исходный файл в галерее получает свою цветовую метку — полоску на карточках. Это не украшение: по внутреннему ключу pdfSrcKey приложение помнит, из какого документа пришла каждая страница, так что при сборке ничего не перепутается.
Шаг 02. Упорядочить страницы
Порядок страниц в итоговом файле — это порядок карточек в галерее. Перетаскивайте карточки мышью или пальцем: страница встаёт на новое место, остальные сдвигаются. Лишние листы можно удалить кнопкой 🗑 на карточке.
Перетаскивание работает и на тач-экранах: короткий порог срабатывания (~9 px) отличает перетаскивание от случайного касания, так что на телефоне галерея не «прыгает» при скролле.
Шаг 03. Скачать единый PDF
Нажмите «Создать PDF». Приложение проходит по галерее и собирает все страницы в один файл через jsPDF: для каждой страницы автоматически определяется ориентация (книжная или альбомная) по пропорциям, лист формата A4. Готовый документ скачивается напрямую из браузера. Бесплатно, без регистрации, без ожидания серверной очереди.
Как это реализовано технически
Объединение идёт через растровый пайплайн, а не слияние бинарной структуры PDF. PDF.js рендерит каждую страницу каждого файла в Canvas и сохраняет как dataURL в общий массив items[] — с ключом источника pdfSrcKey. Порядок в массиве = порядок в галерее; Drag & Drop на Pointer Events просто переставляет элементы items[], без повторного рендера.
На выходе jsPDF проходит по items[]: на каждую страницу вызывает addImage(editUrl, ...) и подбирает ориентацию A4 по пропорциям изображения. Файл собирается целиком в памяти вкладки и отдаётся на скачивание.
Известные ограничения
Результат растровый. Страницы вставляются как изображения, а не как векторный текст. В итоговом файле текст нельзя выделить и скопировать — он часть картинки. Если нужен текстовый слой на конкретной странице, примените OCR по области после сборки.
Гиперссылки и закладки не переносятся. Растеризация сохраняет вид страницы, но интерактивные элементы исходных PDF (ссылки, оглавление, поля форм) в изображение не попадают.
Память на больших подборках. Сотни страниц — это сотни изображений в оперативной памяти вкладки. На слабых устройствах при 200+ страницах возможны подтормаживания прокрутки.
Нужна обратная операция — разрезать большой документ на части или извлечь отдельные страницы? Это инструмент Разделить PDF.
Попробуйте прямо сейчас — pdfredx.com, без регистрации, файлы остаются у вас.
