【问题标题】:Auto desk Forge Viewer PDF Snap and Zoom IssueAutodesk Forge Viewer PDF 捕捉和缩放问题
【发布时间】:2022-01-13 14:31:39
【问题描述】:

使用 forge 查看器查看 PDF 时,是否可以启用 Snap 功能进行测量(与查看模型时相同)。另外,是否可以更改缩放级别,即我们想要放大到比默认最大值更近的程度?

这两个在 BIM360 中都是可能的,所以我希望在我们的应用程序中也可以,请您建议。

目前我们使用的是 v7 查看器。我们还添加了 snap 扩展和 setZoomInLimitFactor 方法。但我们仍然无法在 PDF 文件中获得捕捉功能和放大功能。

function launchViewer(urn, viewableId) {
        var options = {
            env: 'AutodeskProduction',
            getAccessToken: getForgeToken,
            api: 'derivativeV2' + (atob(urn.replace('_', '/')).indexOf('emea') > -1 ? '_EU' : '') // Both BIM 360 US and EU regions
        };

        Autodesk.Viewing.Initializer(options, () => {
            viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('forgeViewer'));
            viewer.start();
            var documentId = 'urn:' + urn;
            Autodesk.Viewing.Document.load(documentId, onDocumentLoadSuccess, onDocumentLoadFailure);
        });

        function onDocumentLoadSuccess(doc) {
            // if a viewableId was specified, load that view, otherwise the default view
            var viewables = (viewableId ? doc.getRoot().findByGuid(viewableId) : doc.getRoot().getDefaultGeometry());
            viewer.loadDocumentNode(doc, viewables).then(i => {
                viewer.loadExtension('Autodesk.VisualClusters');
                viewer.loadExtension('Autodesk.Snapping');
                viewer.loadExtension("Autodesk.Viewing.MarkupsCore");
                viewer.loadExtension("Autodesk.Viewing.MarkupsGui");
                viewer.loadExtension('Autodesk.Measure');
                viewer.loadExtension('Autodesk.DefaultTools.NavTools');
                viewer.loadExtension('Autodesk.PDF');
                viewer.loadExtension('Autodesk.DocumentBrowser');
                viewer.loadExtension('Autodesk.Viewing.ZoomWindow');
                // any additional added here
            });
            viewer.navigation.setZoomInLimitFactor(2500);
            console.log(viewer.navigation.getZoomInLimitFactor());
        }

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

如果我们遗漏了什么,请告知。提前致谢。

【问题讨论】:

    标签: autodesk-forge


    【解决方案1】:

    看起来您正在使用旧方法来翻译 PDF,然后将其加载到查看器。在旧的方式中,PDF 被翻译成平铺图像。因此,捕捉可能无法正常工作,并且由于平铺图像的最大分辨率,缩放具有最大限制。

    实际上,Forge Viewer 已经支持直接加载原生 PDF,无需翻译。既然是原生的,那就是矢量图。捕捉将起作用,并且可以缩放到大/小得多的比例。

    要播放它,请下载示例项目, https://github.com/Autodesk-Forge/viewer-javascript-offline.sample 并将该行替换为您的本地 pdf 文件

      var options = {
          'env' : 'Local',
          'document' : './my_PDF_folder/mytest.pdf'
      };
    

    此功能来自扩展 Autodesk.PDF,但默认会加载,您无需显式加载。

    【讨论】:

    • 感谢小东的回复。是的,当我们从本地实例加载 pdf 文件时,它工作得非常好。但我期待远程环境的解决方案,这意味着我们需要直接加载 BIM 360 项目文件(它可以是任何类型的文件,如 rvt、DWG、pdf ......等)。那时,我们将获得翻译密钥。请就在这种情况下我们需要如何处理 pdf 文件提出建议。注意:出于安全考虑,我们不想将文件保存在本地。
    • 如前所述,它翻译 PDF,这意味着在平铺图像中,我认为没有测量和缩放比例的解决方案。您可能需要暂时从 BIM360(到您的服务器)下载 PDF 供您的客户查看、自定义标记等,之后,您可以从您的服务器中删除它
    猜你喜欢
    • 2020-04-06
    • 2021-01-16
    • 1970-01-01
    • 2020-05-15
    • 2017-11-29
    • 2020-05-06
    • 2021-11-05
    • 2021-05-13
    • 2020-11-11
    相关资源
    最近更新 更多