Autodesk Forge: загрузка PDF не вызывает onItemLoadSuccess - PullRequest
0 голосов
/ 10 января 2019

У нас работает приложение, которое в настоящее время работает как с 3D, так и с 2D-файлами, и не испытывает никаких проблем при загрузке 3D-файлов и DWG.

Но при попытке загрузить PDF ни мой "onItemLoadSuccess", ни "onItemLoadFail" не запускаются

Autodesk.Viewing.Initializer(options, function onInitialized() {

    // Select the container for the viewer
    viewerApp = new Autodesk.Viewing.ViewingApplication(container);

    // Load settings, i.e extension manager
    viewerApp.registerViewer(viewerApp.k3D, 
Autodesk.Viewing.Private.GuiViewer3D, { extensions: [ 'ExtensionManager'] });

    // Select model to load defined by URN 
    viewerApp.loadDocument(documentId, onDocumentLoadSuccess, onDocumentLoadFailure);
  });
}

function onDocumentLoadSuccess(doc) {
  var viewables = viewerApp.bubble.search({ 'type': 'geometry' });
  if (viewables.length === 0) {
    console.error('Document contains no viewables.');
    return;
  }

  // Choose any of the avialble viewables
  viewerApp.selectItem(viewables[0], onItemLoadSuccess, onItemLoadFail);
}

function onItemLoadSuccess(viewer, item) {
  console.log('onItemLoadSuccess()!');
}

function onItemLoadFail(errorCode) {
  console.error('onItemLoadFail() - errorCode:' + errorCode);
}

Файл PDF будет по-прежнему открываться и загружаться, поэтому мне интересно, может ли быть другой способ запустить функцию onItemLoadSuccess, или нам нужно сделать что-то немного по-другому, чтобы гарантировать, что наши PDF также будут загружены правильно.

Любая помощь высоко ценится!

Ответы [ 2 ]

0 голосов
/ 16 января 2019

(Добавление к ответу Брайана ...)

Я написал в блоге об этом. Взгляните на DEMO и пример кода, чтобы помочь ответить на ваш вопрос о событиях 'onItemLoadSuccess / onItemLoadFail'.

БЛОГ: https://forge.autodesk.com/blog/fast-pdf-viewingmarkup-inside-forge-viewer

ДЕМО: https://wallabyway.github.io/offline-pdf-markup/

Надеюсь, это поможет!

enter image description here

0 голосов
/ 11 января 2019

Начиная с Viewer v6.3, вы можете загружать PDF напрямую с помощью Autodesk.PDF и передавать обратные вызовы на loadModel, как и в других моделях:

  Autodesk.Viewing.Initializer(options, function() {
    viewer.start()
    viewer.loadExtension('Autodesk.PDF').then(function() {
        viewer.loadModel('/path/to/pdf', { page: 1 }, onLoadSuccess, onLoadFail);
    });
  });

См. Примечания к выпуску здесь: https://forge.autodesk.com/blog/viewer-release-notes-v-63

...