Autodesk Forge Viewer PDF 捕捉和缩放问题
Posted
技术标签:
【中文标题】Autodesk Forge Viewer PDF 捕捉和缩放问题【英文标题】:Auto desk Forge Viewer PDF Snap and Zoom Issue 【发布时间】: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);
如果我们遗漏了什么,请告知。提前致谢。
【问题讨论】:
【参考方案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 供您的客户查看、自定义标记等,之后,您可以从您的服务器中删除它以上是关于Autodesk Forge Viewer PDF 捕捉和缩放问题的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Autodesk Forge Viewer 在 PDF 文件中添加 Puspin
如何将 Autodesk Forge Viewer 嵌入移动应用程序?
在 Forge Viewer 上查看原生 PDF 和 DWF,无需翻译
Autodesk-forge 我们可以在查看器上打开 PDF 文件吗[关闭]