Autodesk Forge:加载 PDF 不会触发 onItemLoadSuccess

Autodesk Forge: Loading PDF does not trigger onItemLoadSuccess

我们有一个应用程序 运行ning 目前可以同时处理 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 也正确加载。

非常感谢任何帮助!

从 Viewer v6.3 开始,您可以直接使用 Autodesk.PDF 加载 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

(添加到 Bryan 的回答中...)

我写了一篇关于此的博客 post。查看演示和示例代码,以帮助回答有关 'onItemLoadSuccess / onItemLoadFail' 事件的问题。

博客:https://forge.autodesk.com/blog/fast-pdf-viewingmarkup-inside-forge-viewer

演示:https://wallabyway.github.io/offline-pdf-markup/

希望对您有所帮助!