Как это работает
Как работает
Весь процесс, от открытия файла до скачивания результата, происходит в вашем браузере. Сервер вообще не задействован.
Вы выбираете файл
Браузер читает PDF через стандартный File API — тот самый, что используется при любой загрузке файлов на компьютер. Файл остаётся в оперативной памяти вашего устройства и никуда не передаётся.
PDF.js рендерит страницы
Библиотека PDF.js от Mozilla читает структуру PDF-файла и отрисовывает каждую страницу в элемент Canvas браузера. Именно так вы видите PDF прямо на странице — без плагинов и Adobe Reader.
Вы редактируете
Все ваши правки — новые текстовые блоки, изображения, фигуры, подписи — сохраняются в памяти браузера через Zustand. Реальный PDF-файл при этом не трогается до момента экспорта.
pdf-lib применяет изменения
При нажатии «Скачать» библиотека pdf-lib берёт исходный байтовый массив вашего PDF, добавляет в нужные страницы текст, изображения и аннотации согласно координатам, и формирует новый PDF в памяти.
Готовый файл скачивается
Браузер создаёт Blob URL из готового файла и запускает скачивание. Ни одного байта не уходит на сервер — весь процесс от начала до конца происходит локально на вашем устройстве.
Технологии
Что внутри
PDF.js
Библиотека Mozilla для рендеринга PDF в Canvas. Используется в самом Firefox как встроенный просмотрщик.
pdf-lib
TypeScript-библиотека для создания и модификации PDF. Поддерживает все стандарты PDF 1.x.
Zustand
Минималистичный менеджер состояния для React. Хранит все правки в памяти и управляет историей undo/redo.
Next.js
React-фреймворк для серверного рендеринга и статической генерации страниц. Обеспечивает быструю первую загрузку.
File API
Стандартный браузерный API для чтения локальных файлов без их отправки куда-либо.
Blob URL
Механизм браузера для скачивания файлов, сформированных прямо в памяти, без участия сервера.
Почему это безопаснее, чем кажется
Большинство онлайн-сервисов загружают ваш файл на свой сервер, обрабатывают его там и отдают обратно. Это значит, что чужой сервер хотя бы на время получает доступ к вашим данным.
Наш online PDF editor работает иначе: пдф-файл передаётся напрямую в JavaScript-код, выполняющийся в изолированной среде вашего браузера. Никакого HTTP-запроса с телом файла не происходит вообще. Проверить это можно в DevTools → вкладка Network: при работе с PDF сетевых запросов с файлом не будет.