PDF.JS:由于缩放停止 JS 事件而重新加载/重新渲染
PDF.JS: Reloadeing/ re-rendering due to zoom stops JS events
当我在 iOS 11.4 上的 Cordova 应用程序中的 PDF.JS viewer.html 上执行捏合缩放手势(在显示屏上将 2 根手指分开或彼此擦开)时。 1、文档应永久放大或缩小。但是,如果从大约 < 120% 的缩放大小重新加载/重新呈现文档(PDF.JS 工具栏中显示小加载微调器),则不再触发 'gesturechange' 事件。必须先将手指从显示屏上移开,然后必须用 2 根手指再次执行捏合缩放手势才能再次触发事件。我也尝试了库 Hammer.JS,但不幸的是这里的行为完全相同。如果将文档进一步放大约 5 倍。 > 120%,没有重新渲染发生(PDF.JS 工具栏中没有显示加载微调器)并且 'gesturechange' 事件被进一步触发并且一切正常。现在的问题是,您是否可以在必要时停用重新渲染并仅在缩放结束时再次执行它?
这是 JavaScript 示例代码。 PDFJS viewer.html 在 iframe 中呈现并使用 ExtJS。
var viewer = Ext.dom.Query.select('iframe')[0].contentWindow.document.getElementById("viewer");
var pdfViewer = me.el.dom.contentWindow.PDFViewerApplication.pdfViewer;
viewer.addEventListener('gesturechange', function(e) {
if (e.scale < 1.0) {
console.log("PinchOut")
pdfViewer.currentScale = pdfViewer.currentScale - 0.01;
} else if (e.scale > 1.0) {
console.log("PinchIn");
pdfViewer.currentScale = pdfViewer.currentScale + 0.01;
}
})
尝试将viewer.js中的PDFJS.disableTextLayer设置为"false"
PDFJS.disableTextLayer: false,
那么它应该可以工作
当我在 iOS 11.4 上的 Cordova 应用程序中的 PDF.JS viewer.html 上执行捏合缩放手势(在显示屏上将 2 根手指分开或彼此擦开)时。 1、文档应永久放大或缩小。但是,如果从大约 < 120% 的缩放大小重新加载/重新呈现文档(PDF.JS 工具栏中显示小加载微调器),则不再触发 'gesturechange' 事件。必须先将手指从显示屏上移开,然后必须用 2 根手指再次执行捏合缩放手势才能再次触发事件。我也尝试了库 Hammer.JS,但不幸的是这里的行为完全相同。如果将文档进一步放大约 5 倍。 > 120%,没有重新渲染发生(PDF.JS 工具栏中没有显示加载微调器)并且 'gesturechange' 事件被进一步触发并且一切正常。现在的问题是,您是否可以在必要时停用重新渲染并仅在缩放结束时再次执行它?
这是 JavaScript 示例代码。 PDFJS viewer.html 在 iframe 中呈现并使用 ExtJS。
var viewer = Ext.dom.Query.select('iframe')[0].contentWindow.document.getElementById("viewer");
var pdfViewer = me.el.dom.contentWindow.PDFViewerApplication.pdfViewer;
viewer.addEventListener('gesturechange', function(e) {
if (e.scale < 1.0) {
console.log("PinchOut")
pdfViewer.currentScale = pdfViewer.currentScale - 0.01;
} else if (e.scale > 1.0) {
console.log("PinchIn");
pdfViewer.currentScale = pdfViewer.currentScale + 0.01;
}
})
尝试将viewer.js中的PDFJS.disableTextLayer设置为"false"
PDFJS.disableTextLayer: false,
那么它应该可以工作