PDF.js от Mozilla — это классика для рендеринга PDF в браузере. Но что, если мы хотим не просто просматривать PDF, а редактировать их? Именно этим вопросом задался RabbitHols, создав форк PDF.js, который исследует возможности редактирования PDF прямо в браузере.
Почему PDF.js нужен форк?
PDF.js уже отлично справляется с базовыми задачами: парсингом, рендерингом, текстовыми слоями и аннотациями. Однако RabbitHols решил пойти дальше и превратить его из просмотрщика в редактор. Основная сложность, с которой он столкнулся, — это редактирование существующего текста в PDF без визуальных костылей. Это нетривиальная задача, учитывая структуру PDF-файлов.
Что уже работает?
Проект пока находится на ранней стадии, но уже поддерживает несколько интересных фич:
- Веб-редактор с акцентом на удобство использования.
- Поддержка мобильных устройств и PWA-установок.
- Нативная интеграция с десктопом через Tauri.
- Редактирование текста (пока за флагом разработки).
- Управление разрешениями PDF: печать, копирование, аннотации и т.д.
- Добавление и удаление парольной защиты.
- Обнаружение цифровых подписей и сертификатов.
Особенно интересна поддержка Adobe-specific XFA форм, которые многие просмотрщики просто игнорируют, выводя сообщение «требуется Adobe Reader 8 или выше». Это делает проект полезным для работы с документами, которые раньше требовали Adobe Reader.
Как это выглядит на практике?
Для примера, вот как можно добавить парольную защиту к PDF через интерфейс RabbitHols:
const pdfEditor = new RabbitHolsEditor();
pdfEditor.load('document.pdf');
pdfEditor.addPassword('securePassword123');
pdfEditor.save('protected_document.pdf');
Этот код добавляет парольную защиту к документу и сохраняет его. Пока что это больше proof of concept, чем готовый продукт, но направление перспективное.
Почему это важно?
RabbitHols позиционирует свой проект как инструмент для «маленьких задач», которые пользователи делают каждый день. Это резко контрастирует с монструозными PDF-редакторами вроде Adobe Acrobat, которые перегружены функционалом и часто избыточны для простых задач.
MIT-лицензия делает проект прозрачным и доступным для разработчиков. Это важно, потому что PDF — это сложный формат, и понимание того, как именно обрабатываются документы, может быть полезным для более глубокой интеграции.
Что дальше?
Проект пока сырой, но RabbitHols строит его публично, что позволяет следить за прогрессом и вносить вклад. Если вы работаете с PDF и хотите понять, как далеко можно зайти в браузере, этот форк — отличная точка входа. Особенно если вас интересует мобильная поддержка и интеграция с Tauri для десктопных приложений.
Лично я бы попробовал RabbitHols для простых задач вроде добавления пароля или изменения разрешений. Но для полноценного редактирования текста пока лучше использовать проверенные инструменты. Впрочем, учитывая темпы развития проекта, это может измениться уже в ближайшие месяцы.
Источник: https://github.com/RabbitHols/pdf.js