Быстрый просмотр PDF / Пометки в Forge Viewer
Github: https://github.com/wallabyway/offline-pdf-markup
До недавнего времени реализация просмотра PDF во Viewer-е была достаточно запутанной. Теперь всё изменилось с появлением Fast Native PDF rendering в Forge Viewer, разработанного командой BIM360.
Пример доступен здесь.
Предпосылки:
Изначально Forge конвертировал PDF в F2D (PDF -> DWF, затем используя Model Derivative для конвертации в векторный формат F2D), не самый изящный процесс.
Затем, второй подход был... "Пусть сам браузер обработает это". A360 использовал PDF.js для декодирования и рендеринга PDF-файла, но в этом случае рендеринг был слишком медленным. Другой подход "Пусть сама операционная система обработает PDF файл с помощью того просмотрщика, который у неё есть (например, Adobe Acrobat Reader)" приводила к тому, что результаты могли отличаться на разных компьютерах.
Спасибо команде BIM360, предложившей гибридный подход. Используя часть PDF.js, ответственную за парсинг PDF-файла, и быстрый WebGL рендерер Forge Viewer-а, теперь возможно быстро отрисовывать большие PDF-файлы в самом Forge Viewer.
А ещё, поскольку теперь функционал встроен в Forge viewer, Вы можете использовать расширения, такие как, например:
1. Измерения с привязками к граням и углам
2. Пометки с выносками и текстом
3. Просмотр в offline
Все эти возможности показаны в примере по ссылке выше.
Оцените также проиводительность векторного рендеринга по этой ссылке.
Создаем просмотрщик PDF-файла:
1. Сначала нужно инициализировать viewer для просмотра локального файла, затем
2. Загрузите расширение "Autodesk.PDF", следующим образом...
- let viewer;
- function initializeViewer( pdf ) {
- var options = {
- env: "Local",
- useADP: false
- }
- Autodesk.Viewing.Initializer(options, () => {
- viewer = new Autodesk.Viewing.Private.GuiViewer3D(document.getElementById('forgeViewer'));
- viewer.setTheme("light-theme");
- viewer.start();
- if (!pdf) return;
- viewer.loadExtension('Autodesk.PDF').then( () => {
- viewer.loadModel( pdf , viewer);
- viewer.loadExtension("Autodesk.Viewing.MarkupsCore")
- viewer.loadExtension("Autodesk.Viewing.MarkupsGui")
- });
- });
Источник: https://forge.autodesk.com/blog/fast-pdf-viewingmarkup-inside-forge-viewer
Обсуждение: http://adn-cis.org/forum/index.php?topic=
Опубликовано 28.12.2018Отредактировано 28.12.2018 в 15:37:56