From 3eb4c1940dd94fd11d239bf1b36d3582b6aa3781 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sat, 7 Mar 2020 22:24:27 +0100 Subject: [PATCH] Initialize the `textLayerFactory` once in `BaseViewer.setDocument`, rather than repeating it for every page For reasons that I don't even pretend to understand, the `textLayerFactory` property is determined for *every single* page in the PDF document. Given that the `TextLayerMode` should be consistent for *all* pages in a document, we obviously could/should define `textLayerFactory` just once instead. --- web/base_viewer.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/web/base_viewer.js b/web/base_viewer.js index 3861acf95..4b2fbe734 100644 --- a/web/base_viewer.js +++ b/web/base_viewer.js @@ -453,11 +453,10 @@ class BaseViewer { const scale = this.currentScale; const viewport = firstPdfPage.getViewport({ scale: scale * CSS_UNITS }); + const textLayerFactory = + this.textLayerMode !== TextLayerMode.DISABLE ? this : null; + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { - let textLayerFactory = null; - if (this.textLayerMode !== TextLayerMode.DISABLE) { - textLayerFactory = this; - } const pageView = new PDFPageView({ container: this._setDocumentViewerElement, eventBus: this.eventBus,