diff --git a/web/viewer.js b/web/viewer.js index b1730695f..2f1fe5911 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -865,6 +865,12 @@ var PDFViewerApplication = { } } + var initialParams = { + destination: self.initialDestination, + bookmark: self.initialBookmark, + hash: null, + }; + store.initializedPromise.then(function resolved() { var storedHash = null; if (self.preferenceShowPreviousViewOnLoad && @@ -882,6 +888,8 @@ var PDFViewerApplication = { } self.setInitialView(storedHash, scale); + initialParams.hash = storedHash; + // Make all navigation keys work on document load, // unless the viewer is embedded in a web page. if (!self.isViewerEmbedded) { @@ -891,6 +899,23 @@ var PDFViewerApplication = { console.error(reason); self.setInitialView(null, scale); }); + + // For documents with different page sizes, + // ensure that the correct location becomes visible on load. + pagesPromise.then(function resolved() { + if (!initialParams.destination && !initialParams.bookmark && + !initialParams.hash) { + return; + } + if (self.hasEqualPageSizes) { + return; + } + self.initialDestination = initialParams.destination; + self.initialBookmark = initialParams.bookmark; + + self.pdfViewer.currentScaleValue = self.pdfViewer.currentScaleValue; + self.setInitialView(initialParams.hash, scale); + }); }); pagesPromise.then(function() {