← Все инструменты
📖

Разделить разворот PDF — Разрезать книжный скан на страницы онлайн

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

+Загрузить PDF или фотоили перетащите файлы сюда🚀 Запустить инструмент бесплатно

Как это работает

01

Загрузите PDF или фото

Добавьте отсканированный документ с книжными разворотами в галерею.

02

Откройте инструмент

Нажмите «Разделить разворот» в главном меню или тулбаре.

03

Выберите направление разреза

По вертикали (левая + правая) или по горизонтали (верхняя + нижняя).

04

При горизонтали — поверните

Выберите направление поворота ↻ +90° или ↺ −90° для правильной ориентации.

05

Применить и сохранить

Каждая страница заменяется двумя. Экспортируйте финальный PDF.

Почему pdfredX

🔒

Полная конфиденциальность

Файлы не покидают ваш браузер. Никакой загрузки на сторонние серверы.

Обработка на стороне клиента

Все вычисления выполняются локально — быстро, безопасно и бесплатно.

🆓

Без регистрации

Просто откройте браузер и приступайте. Никаких аккаунтов не нужно.

📱

На любом устройстве

Работает на ПК, планшете и смартфоне без установки.

Полезные материалы по теме

Как разрезать скан книги на страницы: разделить разворот PDF в браузере
Когда вы сканируете книгу, журнал или старый документ, на одном листе оказывается сразу две страницы — разворот, или двойная страница. Чтобы получить нормальный постраничный PDF, каждую двойную страницу нужно разрезать пополам. Перепечатывать или гонять файл по онлайн-сервисам не нужно: инструмент «Разделить разворот» в pdfredX режет страницы прямо в браузере, файл никуда не загружается.

Когда вы сканируете книгу, журнал или старый документ, на одном листе оказывается сразу две страницы — разворот, или двойная страница. Чтобы получить нормальный постраничный PDF, каждую двойную страницу нужно разрезать пополам. Перепечатывать или гонять файл по онлайн-сервисам не нужно: инструмент «Разделить разворот» в pdfredX режет страницы прямо в браузере, файл никуда не загружается.


Шаг 01. Загрузить скан

Откройте pdfredx.com и перетащите PDF или фотографии разворотов в зону загрузки. Принимаются многостраничные PDF и изображения (JPEG, PNG, HEIC, WebP). Каждый разворот появляется в галерее отдельной карточкой.

Файл читается локально через FileReader и рендерится в Canvas — ни одного байта на сервер не уходит. Скорость зависит от размера файла и устройства: лёгкий скан открывается мгновенно, тяжёлый на 200+ страниц на старом телефоне займёт несколько секунд.


Шаг 02. Выбрать направление разреза

Нажмите «Разделить разворот» в главном меню или на тулбаре — откроется панель #SS. Выберите, как резать:

  • По вертикали — разрез посередине по горизонтали слева направо: левая страница + правая страница. Это обычный книжный разворот.
  • По горизонтали — разрез посередине по вертикали: верхняя половина + нижняя. Так сканируют, когда лист повёрнут на 90° (например, альбомный разворот на портретном стекле сканера).

Разрез всегда проходит ровно по центру листа. Если корешок книги ушёл от середины — сначала подровняйте кадр инструментом обрезки, потом режьте.


Шаг 03. При горизонтальном разрезе — задать поворот

Горизонтальный разрез почти всегда означает, что половинки нужно довернуть до правильной ориентации. В панели выберите направление: ↻ +90° или ↺ −90°. Приложение применит поворот к обеим половинам через функцию rotCanvas() (тот же движок поворота, что в редакторе обрезки). Для вертикального разреза поворот не нужен — половины уже стоят правильно.


Шаг 04. Применить и сохранить

Нажмите «Применить». На время обработки появится фиолетовый оверлей прогресса #OV: приложение проходит по всем разворотам за один проход и заменяет каждую страницу двумя новыми. Разворот из 50 листов превращается в 100 отдельных страниц, порядок сохраняется.

Готовый результат сразу виден в галерее. Нажмите «Создать PDF» — все страницы соберутся в один файл через jsPDF и скачаются напрямую из браузера. Бесплатно, без регистрации, без ожидания серверной очереди.


Как это реализовано технически

В основе — Canvas 2D API, метод drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh). Первые четыре числа задают прямоугольник-вырез из исходного скана, вторые четыре — куда и каким размером его положить на новый холст. Для левой половины берётся вырез (0, 0, ширина/2, высота), для правой — (ширина/2, 0, ширина/2, высота). Каждая половина рисуется на собственном Canvas и превращается в новое изображение страницы.

Массив страниц items[] обрабатывается за один проход: на месте одного элемента-разворота встают два элемента-страницы. Никакого повторного рендера всего документа — только кадрирование пикселей, поэтому даже толстая книга режется за секунды.


Известные ограничения

Разрез строго по центру. Если разворот отсканирован несимметрично (корешок смещён, поля разной ширины) — половины получатся неровными. Выровняйте кадр обрезкой до разреза.

Кривой корешок. У толстых книг текст у корешка «утопает» и идёт под наклоном. Геометрический разрез по центру это не исправит — он делит лист, а не выпрямляет страницу.

Растровый результат. Страницы режутся как изображения, а не как векторный текст. Если в исходнике был выделяемый текст, после разреза он станет частью картинки. Чтобы вернуть текстовый слой, примените инструмент OCR по области на нужных страницах.

Память на больших сканах. Книга на 300+ разворотов в браузере — это 600+ страниц-изображений в оперативной памяти. На слабых телефонах возможны паузы; на десктопе почти незаметно.


Если у вас не книжный разворот, а двусторонний скан из двух прогонов автоподатчика (отдельно лицевые, отдельно оборотные) — это другая задача, для неё есть Склейка дуплексного скана.

Попробуйте прямо сейчас — pdfredx.com, без регистрации, файл остаётся у вас.

Тяжёлые сканы книг и облачные «резалки» PDF: почему разворот безопаснее резать в браузере
Вы отсканировали книгу, архивное дело или подшивку договоров — получился многостраничный PDF, где на каждом листе по два разворота. Чтобы разрезать его на отдельные страницы, вы открываете первый попавшийся онлайн-сервис, жмёте «Загрузить» — и упираетесь либо в лимит размера файла, либо в долгую загрузку, либо в вопрос, который мало кто задаёт: а куда вообще ушёл ваш документ?

Вы отсканировали книгу, архивное дело или подшивку договоров — получился многостраничный PDF, где на каждом листе по два разворота. Чтобы разрезать его на отдельные страницы, вы открываете первый попавшийся онлайн-сервис, жмёте «Загрузить» — и упираетесь либо в лимит размера файла, либо в долгую загрузку, либо в вопрос, который мало кто задаёт: а куда вообще ушёл ваш документ?

Разберём оба пути честно.


Почему серверные «резалки» плохо подходят для сканов книг

Лимит на размер файла. Скан книги на 200–400 страниц — это десятки, иногда сотни мегабайт. Бесплатные серверные сервисы почти всегда режут такие файлы по лимиту: «до 10 МБ», «до 50 МБ», «оформите подписку для больших файлов». Тяжёлый архивный скан просто не пролезает.

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

Документ оказывается на чужой машине. Сканы книг — это часто не художественная литература, а архивные дела, медицинские карты, бухгалтерские подшивки, материалы судебных дел. Когда такой файл уходит на сервер, он:

  • сохраняется во временном хранилище подрядчика (AWS, GCP, Azure);
  • может храниться от нескольких часов до нескольких суток «для надёжности»;
  • логируется вместе с метаданными — IP, время, имя и размер файла;
  • по условиям некоторых сервисов может использоваться для «улучшения продукта».

Сроки хранения прописаны мелким шрифтом в политике конфиденциальности. Проверить, что файл действительно удалён, вы не можете — остаётся только верить.


Полная изоляция в браузере: как режет разворот pdfredX

pdfredX позволяет разрезать PDF на части без сервера — файл не загружается никуда. Это не обещание со страницы «О нас», а следствие архитектуры, которое можно проверить.

Файл читается локально. PDF.js 3.11.174 открывает документ прямо во вкладке через FileReader и рисует страницы на Canvas. Сетевого запроса с вашим файлом нет.

Разрез происходит в памяти вкладки. Кадрирование половин — это Canvas 2D drawImage над пикселями уже загруженного изображения. Все вычисления локальны.

Никаких лимитов на размер от нас. Ограничение — только оперативная память вашего устройства, а не тариф сервиса. Толстый скан режется так же, как тонкий.

Сборка PDF — на клиенте. Готовые страницы собирает jsPDF прямо во вкладке и отдаёт браузеру на скачивание. Файл идёт в папку «Загрузки», а не на сервер и обратно.

Работает офлайн. Хотите убедиться в изоляции — откройте инструмент, отключите интернет и разрежьте скан. Всё продолжит работать: сеть нужна только чтобы один раз загрузить само приложение.


Пошагово, без отправки на сервер

01. Загрузите скан. Перетащите PDF с разворотами в зону загрузки на pdfredx.com. FileReader читает файл локально — он не покидает устройство.

02. Выберите направление и разрежьте. Откройте «Разделить разворот», задайте вертикальный или горизонтальный разрез (при горизонтальном — направление поворота). Нажмите «Применить» — каждая страница заменяется двумя половинами в памяти вкладки.

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


Что мы гарантировать не можем — честный дисклеймер

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

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

Браузерные расширения с широкими правами. Расширение с доступом «читать данные на всех сайтах» теоретически видит содержимое вкладки. Для чувствительных сканов работайте в профиле без сторонних расширений или в приватном окне.

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

Мы обеспечиваем изоляцию на уровне браузерной вкладки. Остальное — на стороне пользователя.


Разрежьте сканы книг без загрузки на сервер и без лимитов на размер — pdfredx.com, бесплатно, без регистрации.

Canvas 2D drawImage: как разрезать книжный разворот PDF на две страницы в браузере
Задача звучит просто: взять лист с двумя страницами и разрезать его пополам. На практике вся инженерия — в деталях: как кадрировать пиксели без потери качества, как доворачивать половины при горизонтальном разрезе, как превратить один элемент массива страниц в два и не сломать порядок, и где у браузера заканчивается память. Разберём, как устроен инструмент `split-spread` в pdfredX — без сервера, целиком на Canvas 2D API.

Задача звучит просто: взять лист с двумя страницами и разрезать его пополам. На практике вся инженерия — в деталях: как кадрировать пиксели без потери качества, как доворачивать половины при горизонтальном разрезе, как превратить один элемент массива страниц в два и не сломать порядок, и где у браузера заканчивается память. Разберём, как устроен инструмент split-spread в pdfredX — без сервера, целиком на Canvas 2D API.


Архитектурный вызов и выбор стека

Разрезать страницу на сервере тривиально: принять файл, распарсить структуру PDF, нарезать через библиотеку, отдать результат. В браузере набор ограничений другой.

Почему Canvas, а не разбор структуры PDF. Формат PDF — это сложный бинарный граф: таблицы перекрёстных ссылок, сжатые потоки объектов, шрифты, цветовые профили. Тащить в браузер полноценный парсер ради геометрической операции «отрежь половину» — избыточно и хрупко на нестандартных файлах. Сканы книг и так растровые: каждая страница — это изображение. Поэтому мы работаем с рендером на Canvas, а не со структурой документа.

Почему drawImage, а не ручной проход по пикселям. Можно было бы копировать половину через getImageData / putImageData — попиксельно. Но drawImage с восемью аргументами делает то же самое аппаратно-ускоренно, одним вызовом, и сразу с масштабированием. Для кадрирования это правильный инструмент: меньше кода, быстрее, без промежуточных буферов.

Почему всё локально. PDF.js рендерит страницы во вкладке, jsPDF собирает результат там же. Файл не уходит на сервер — это и быстрее (нет round-trip), и приватнее (скан книги остаётся на устройстве).


Разбор алгоритма

Кадрирование половин через drawImage

Сигнатура метода — drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh). Первая четвёрка (sx, sy, sw, sh) — прямоугольник-вырез из исходного изображения. Вторая (dx, dy, dw, dh) — куда и каким размером положить его на целевой холст.

Для вертикального разреза (левая + правая страницы):

const w = img.naturalWidth, h = img.naturalHeight;
const halfW = Math.floor(w / 2);

// Левая страница: вырез [0 .. halfW] по ширине
const left = document.createElement('canvas');
left.width = halfW; left.height = h;
left.getContext('2d').drawImage(img, 0, 0, halfW, h, 0, 0, halfW, h);

// Правая страница: вырез [halfW .. w]
const right = document.createElement('canvas');
right.width = w - halfW; right.height = h;
right.getContext('2d').drawImage(img, halfW, 0, w - halfW, h, 0, 0, w - halfW, h);

Для горизонтального разреза те же формулы по оси Y: верхняя половина — вырез (0, 0, w, halfH), нижняя — (0, halfH, w, h - halfH). Обратите внимание на Math.floor и остаток w - halfW: при нечётной ширине пиксели не должны теряться или задваиваться, поэтому вторая половина забирает «хвост».

Поворот при горизонтальном разрезе

Горизонтальный разрез обычно означает, что лист лежал боком — половины нужно довернуть. Здесь переиспользуется rotCanvas() из editor.js (тот же поворотный движок, что у инструмента обрезки на Cropper.js 1.5.13):

if (direction === 'horizontal') {
  topHalf    = rotCanvas(topHalf, angle);     // angle = +90 или -90
  bottomHalf = rotCanvas(bottomHalf, angle);
}

rotCanvas создаёт новый холст с переставленными сторонами (height × width) и рисует исходный через ctx.rotate(). Угол берётся из выбора пользователя в панели #SS (↻ +90° / ↺ −90°) — направление зависит от того, как именно был повёрнут оригинал при сканировании.

Маппинг массива: одна страница → две

Самое тонкое — перестроить общий массив страниц items[] так, чтобы не сломать порядок. Каждый разворот заменяется двумя страницами на своём месте:

const result = [];
for (const page of items) {
  const [a, b] = splitPage(page, direction, angle);   // два dataURL
  result.push(makeItem(a, page));   // левая / верхняя
  result.push(makeItem(b, page));   // правая / нижняя
}
items = result;   // было N разворотов — стало 2N страниц

Проход линейный, за один цикл. Никакого повторного рендера всего документа: splitPage работает только с уже отрисованным изображением страницы. На время прохода показывается оверлей #OV (фиолетовый, z-index: 700), потому что для толстой книги цикл всё же занимает заметные доли секунды — и пользователю важно видеть, что идёт обработка, а не зависание.

Сборка результата

После маппинга items[] содержит вдвое больше элементов. Финальный PDF собирает jsPDF: проход по массиву, на каждую страницу — addImage(), ориентация A4 определяется по пропорциям половины. Сборка целиком в памяти вкладки, файл отдаётся браузеру на скачивание.


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

Удвоение количества объектов. Книга на 200 разворотов после разреза — это 400 страниц-изображений в памяти. Каждая декодированная в Canvas страница A4 при 150 DPI — это около 8–9 МБ RGBA-битмапа. 400 страниц — потенциально несколько гигабайт пиковой памяти. Chrome ограничивает вкладку примерно 2–4 ГБ и при приближении к лимиту начинает выгружать неактивные объекты, что вызывает повторные рендеры при прокрутке галереи.

Почему половины не хранятся в полном разрешении вечно. Результат drawImage сразу конвертируется в сжатый dataURL (canvas.toDataURL('image/jpeg', quality)), а тяжёлый промежуточный Canvas отпускается под сборщик мусора. Это держит пиковую память в разумных рамках: в памяти живут сжатые строки, а не сырые битмапы всех половин одновременно.

Где упирается на мобильных. На телефоне с 3 ГБ ОЗУ комфортный потолок — около 150–200 разворотов (300–400 итоговых страниц). Дальше возможны паузы и подтормаживания прокрутки. На десктопе порог заметно выше.

Главный поток. Сейчас разрез идёт в основном потоке — отсюда оверлей прогресса. Перенос в Web Worker через OffscreenCanvas убрал бы подтормаживание UI на больших книгах, но упирался в нестабильную на момент реализации поддержку в Safari. Это осознанный технический долг.


Что улучшим в следующих версиях

OffscreenCanvas + Worker — вынести нарезку с главного потока, как только стабилизируется поддержка в Safari.

Авто-детект линии корешка — сейчас разрез строго по центру; распознавание реального шва позволило бы резать асимметричные развороты без ручной обрезки.

Потоковый экспорт через WritableStream — собирать PDF на 1000+ страниц без пикового скачка памяти.


Хотите проверить под нагрузкой — загрузите реальный многостраничный скан книги на pdfredx.com. Без регистрации, без загрузки файлов на сервер.

🚀 Запустить инструмент бесплатно