Pixel Compare扩展对比PDF时过度缩放无法缩小问题问询
排查方向
- 调整扩展与对比逻辑的触发时机:你现有代码仅监听了
LOADER_LOAD_FILE_EVENT事件,此时PDF资源仅完成加载还未完成页面渲染,直接触发Pixel Compare会导致视口边界计算错误。建议改为监听Autodesk.Viewing.PDF_PAGE_LOADED_EVENT事件,等PDF页面完全渲染后再启动对比逻辑。 - 强制重置视口范围:对比逻辑执行完成后主动调用
viewer.fitToView()方法,让视口自动适配整个PDF页面的边界,覆盖Pixel Compare自动生成的错误视口参数。如果fitToView()未生效,可以先通过viewer.model.getBoundingBox()获取PDF页面的全局边界,手动调整相机的目标点、位置和裁剪面参数适配边界范围。 - 修正PDF加载配置:在调用
loadModel加载PDF文件时,在配置项中添加{ adjustCropBox: true, disableBlobStorage: true },强制适配PDF的裁剪框属性,避免裁剪框读取错误导致页面被裁切。 - 排查扩展冲突:暂时注释掉MarkupsCore、MarkupsGui两个扩展的加载逻辑,验证是否是多扩展之间的视口操作冲突导致缩放功能失效。如果确认是扩展冲突,调整加载顺序,优先加载Pixel Compare扩展,再加载标记类扩展。
参考修正代码
viewer1.addEventListener(Autodesk.Viewing.PDF_PAGE_LOADED_EVENT, async function (e) { // 等待PDF扩展加载完成 await viewer1.loadExtension('Autodesk.PDF'); // 优先加载Pixel Compare扩展,再加载其他功能扩展 await viewer1.loadExtension('Autodesk.PixelCompare'); await viewer1.loadExtension("Autodesk.Viewing.MarkupsCore"); await viewer1.loadExtension("Autodesk.Viewing.MarkupsGui"); // 强制适配全页视口 viewer1.fitToView(); });
内容的提问来源于stack exchange,提问作者itsmejohn
相关产品推荐
相关产品推荐

