JavaScript-библиотека для создания и отображения 3D-сцен в браузере с помощью WebGL и WebGPU.
zumerlab/snapdom
JavaScript-движок для браузера, который захватывает DOM-элементы и экспортирует их в SVG, PNG, JPG, WebP, canvas или Blob; плагины добавляют поддержку HTML, PDF, векторной графики, GIF и видео.
Open source альтернатива:html2canvas
- Звёзды
- 8,197
- Форки
- 307
- Открытые issues
- 5
- Последний коммит
- 10 часов назад
Что это?
SnapDOM захватывает DOM-элемент на странице и преобразует его в изображения, например SVG, PNG, JPG, WebP, canvas или Blob. Один захват можно использовать для создания нескольких форматов, а результат сохраняет состояние элемента на момент захвата, даже если исходный элемент изменится позже.
Официальные плагины позволяют преобразовать тот же захват в автономный HTML, PDF с поиском и разбиением на страницы, редактируемые SVG-векторы с данными для вставки в буфер обмена Figma, текстовый или JSON-контекст для агентов, анимированный GIF и видео, закодированное в браузере. Пользовательские экспортёры можно создавать с помощью документированных хуков плагинов. У ядра нет зависимостей, оно работает целиком в браузере; ему нужна DOM-среда, поэтому в обычном Node.js оно не запускается.
Библиотека позволяет настраивать размер результата, DPR, цвет фона, исключение или скрытие элементов, встраивание веб-шрифтов и обрезку. Экспорт в PNG обрабатывает захваты, превышающие ограничения размера canvas, а отдельная опция обрезки позволяет растеризовать большие страницы по частям.
Ключевые возможности
- 01Захватывает DOM-элементы и за один захват создаёт SVG, PNG, JPG, WebP, canvas или Blob.
- 02Повторно использует неизменившиеся захваты и при небольших изменениях перестраивает только затронутые поддеревья.
- 03Официальные плагины позволяют экспортировать HTML, PDF, редактируемые векторы, GIF и видео.
- 04Хуки плагинов позволяют разработчикам создавать собственные экспортёры.
- 05Параметры задают размер, масштаб, фон, исключаемые элементы и встраивание шрифтов.
- 06Работает в браузере через ES-модуль, тег script или объявления TypeScript.
Сценарии использования
- Передача дашборда, графика или счёта из веб-приложения в виде изображения.
- Создание PDF-отчётов или страниц для печати из отрисованного содержимого страницы.
- Экспорт редактируемой векторной графики или вставка дизайнов в Figma.
- Предоставление AI-агентам текстового или графического представления содержимого страницы.
Быстрый старт
- 1
Установите основной пакет с помощью npm
npm i @zumer/snapdom - 2
Импортируйте snapdom и экспортируйте элемент в PNG
Что важно знать
- SnapDOM нужен DOM браузера, поэтому для Node.js на сервере требуется среда браузера.
- Для изображений, шрифтов и таблиц стилей с других источников нужны доступные для чтения ресурсы или прокси; iframe с других источников отображаются как заполнители.
- Вывод SVG зависит от foreignObject, поэтому вне браузеров поддержка может различаться.
Темы
Частые вопросы
- Что такое snapdom?
- JavaScript-движок для браузера, который захватывает DOM-элементы и экспортирует их в SVG, PNG, JPG, WebP, canvas или Blob; плагины добавляют поддержку HTML, PDF, векторной графики, GIF и видео. SnapDOM захватывает DOM-элемент на странице и преобразует его в изображения, например SVG, PNG, JPG, WebP, canvas или Blob. Один захват можно использовать для создания нескольких форматов, а результат сохраняет состояние элемента на момент захвата, даже если исходный элемент изменится позже.
- snapdom можно использовать бесплатно? Какая у него лицензия?
- snapdom распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- snapdom всё ещё поддерживается?
- Активно поддерживается. Последний коммит в snapdom — 20 окт. 2026 г..
- Для чего можно использовать snapdom?
- Передача дашборда, графика или счёта из веб-приложения в виде изображения. Создание PDF-отчётов или страниц для печати из отрисованного содержимого страницы. Экспорт редактируемой векторной графики или вставка дизайнов в Figma. Предоставление AI-агентам текстового или графического представления содержимого страницы.
- Как установить snapdom?
- Установите основной пакет с помощью npm: npm i @zumer/snapdom Импортируйте snapdom и экспортируйте элемент в PNG
- Где скачать snapdom?
- Исходный код и инструкции по установке — на GitHub: https://github.com/zumerlab/snapdom
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Быстрая библиотека для 2D-рендеринга в вебе: рисует графику, спрайты и текст с помощью WebGL и WebGPU.
Лицензированный по MIT SDK бесконечной холстовой доски для React, React Native и приложений на чистом JavaScript — бесплатная альтернатива tldraw.
Кроссплатформенный инструмент для создания скриншотов на C++/Qt с редактором аннотаций, настраиваемыми сочетаниями клавиш и интерфейсами CLI и DBus.
Лёгкий набор утилит для тестирования React DOM: он позволяет находить элементы и взаимодействовать с компонентами так, как это делают пользователи.
Библиотека JavaScript и CLI для преобразования исходного кода JS в блок-схемы SVG с уровнями абстракции, модификаторами блоков кода и темами оформления.