PDF.JS: перегрузка / перерисовка из-за увеличения масштаба останавливает события JS - PullRequest
0 голосов
/ 23 ноября 2018

Когда я выполняю жест Pinch Zoom (вытрите 2 пальца друг от друга или друг от друга на дисплее) в PDF.JS viewer.html в приложении Cordova на iOS 11.4.1, документ должен быть постоянно увеличен илииз.Но если документ перезагружается / перерисовывается (на панели инструментов PDF.JS отображается небольшой загрузочный счетчик) с размером масштабирования около <120%, событие'changechange 'больше не вызывается.Сначала нужно убрать пальцы с дисплея, а жест зум-масштабирования нужно повторить двумя пальцами, чтобы снова запустить событие.Я также попробовал библиотеку Hammer.JS, но, к сожалению, здесь точно такое же поведение.Если документ еще больше увеличен с прибл.> 120%, повторный рендеринг не выполняется (спиннер загрузки не отображается на панели инструментов PDF.JS), и происходит событие «жестом обмена», и все работает.Теперь вопрос заключается в том, можете ли вы деактивировать повторный рендеринг, если это необходимо, и выполнять его снова только в конце масштабирования?

Это пример кода 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;
    }
})

1 Ответ

0 голосов
/ 03 декабря 2018

Попробуйте установить PDFJS.disableTextLayer в viewer.js в значение «false»

PDFJS.disableTextLayer: false,

, тогда он должен работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...