|
|
|
@ -194,45 +194,25 @@ var PDFView = {
@@ -194,45 +194,25 @@ var PDFView = {
|
|
|
|
|
}, true); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
setScale: function pdfViewSetScale(val, resetAutoSettings, noScroll) { |
|
|
|
|
if (val == this.currentScale) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
var pages = this.pages; |
|
|
|
|
for (var i = 0; i < pages.length; i++) |
|
|
|
|
pages[i].update(val); |
|
|
|
|
|
|
|
|
|
if (!noScroll && this.currentScale != val) |
|
|
|
|
this.pages[this.page - 1].scrollIntoView(); |
|
|
|
|
this.currentScale = val; |
|
|
|
|
|
|
|
|
|
var event = document.createEvent('UIEvents'); |
|
|
|
|
event.initUIEvent('scalechange', false, false, window, 0); |
|
|
|
|
event.scale = val; |
|
|
|
|
event.resetAutoSettings = resetAutoSettings; |
|
|
|
|
window.dispatchEvent(event); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
parseScale: function pdfViewParseScale(value, resetAutoSettings, noScroll) { |
|
|
|
|
if ('custom' == value) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
var scale = parseFloat(value); |
|
|
|
|
this.currentScaleValue = value; |
|
|
|
|
if (scale) { |
|
|
|
|
this.setScale(scale, true, noScroll); |
|
|
|
|
setScale: function pdfViewSetScale(value, resetAutoSettings, noScroll) { |
|
|
|
|
if (value === 'custom') { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
var pages = this.pages; |
|
|
|
|
var currentPage = pages[this.page - 1]; |
|
|
|
|
var number = parseFloat(value); |
|
|
|
|
var scale; |
|
|
|
|
|
|
|
|
|
var container = this.container; |
|
|
|
|
var currentPage = this.pages[this.page - 1]; |
|
|
|
|
if (number) { |
|
|
|
|
scale = number; |
|
|
|
|
resetAutoSettings = true; |
|
|
|
|
} else { |
|
|
|
|
if (!currentPage) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var pageWidthScale = (container.clientWidth - SCROLLBAR_PADDING) / |
|
|
|
|
var pageWidthScale = (this.container.clientWidth - SCROLLBAR_PADDING) / |
|
|
|
|
currentPage.width * currentPage.scale; |
|
|
|
|
var pageHeightScale = (container.clientHeight - VERTICAL_PADDING) / |
|
|
|
|
var pageHeightScale = (this.container.clientHeight - VERTICAL_PADDING) / |
|
|
|
|
currentPage.height * currentPage.scale; |
|
|
|
|
switch (value) { |
|
|
|
|
case 'page-actual': |
|
|
|
@ -251,9 +231,30 @@ var PDFView = {
@@ -251,9 +231,30 @@ var PDFView = {
|
|
|
|
|
scale = Math.min(1.0, pageWidthScale); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
this.setScale(scale, resetAutoSettings, noScroll); |
|
|
|
|
} |
|
|
|
|
this.currentScaleValue = value; |
|
|
|
|
|
|
|
|
|
if (scale === this.currentScale) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
for (var i = 0, ii = pages.length; i < ii; i++) { |
|
|
|
|
pages[i].update(scale); |
|
|
|
|
} |
|
|
|
|
this.currentScale = scale; |
|
|
|
|
|
|
|
|
|
if (!noScroll) { |
|
|
|
|
currentPage.scrollIntoView(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var event = document.createEvent('UIEvents'); |
|
|
|
|
event.initUIEvent('scalechange', false, false, window, 0); |
|
|
|
|
event.scale = scale; |
|
|
|
|
event.resetAutoSettings = resetAutoSettings; |
|
|
|
|
window.dispatchEvent(event); |
|
|
|
|
|
|
|
|
|
if (!number) { |
|
|
|
|
selectScaleOption(value); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
zoomIn: function pdfViewZoomIn(ticks) { |
|
|
|
@ -263,7 +264,7 @@ var PDFView = {
@@ -263,7 +264,7 @@ var PDFView = {
|
|
|
|
|
newScale = Math.ceil(newScale * 10) / 10; |
|
|
|
|
newScale = Math.min(MAX_SCALE, newScale); |
|
|
|
|
} while (--ticks && newScale < MAX_SCALE); |
|
|
|
|
this.parseScale(newScale, true); |
|
|
|
|
this.setScale(newScale, true); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
zoomOut: function pdfViewZoomOut(ticks) { |
|
|
|
@ -273,7 +274,7 @@ var PDFView = {
@@ -273,7 +274,7 @@ var PDFView = {
|
|
|
|
|
newScale = Math.floor(newScale * 10) / 10; |
|
|
|
|
newScale = Math.max(MIN_SCALE, newScale); |
|
|
|
|
} while (--ticks && newScale > MIN_SCALE); |
|
|
|
|
this.parseScale(newScale, true); |
|
|
|
|
this.setScale(newScale, true); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
set page(val) { |
|
|
|
@ -1018,14 +1019,14 @@ var PDFView = {
@@ -1018,14 +1019,14 @@ var PDFView = {
|
|
|
|
|
} else if (storedHash) { |
|
|
|
|
this.setHash(storedHash); |
|
|
|
|
} else if (scale) { |
|
|
|
|
this.parseScale(scale, true); |
|
|
|
|
this.setScale(scale, true); |
|
|
|
|
this.page = 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (PDFView.currentScale === UNKNOWN_SCALE) { |
|
|
|
|
// Scale was not initialized: invalid bookmark or scale was not specified.
|
|
|
|
|
// Setting the default one.
|
|
|
|
|
this.parseScale(DEFAULT_SCALE, true); |
|
|
|
|
this.setScale(DEFAULT_SCALE, true); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
@ -1326,7 +1327,7 @@ var PDFView = {
@@ -1326,7 +1327,7 @@ var PDFView = {
|
|
|
|
|
thumb.update(this.pageRotation); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
this.parseScale(this.currentScaleValue, true); |
|
|
|
|
this.setScale(this.currentScaleValue, true); |
|
|
|
|
|
|
|
|
|
this.renderHighestPriority(); |
|
|
|
|
|
|
|
|
@ -1654,7 +1655,7 @@ document.addEventListener('DOMContentLoaded', function webViewerLoad(evt) {
@@ -1654,7 +1655,7 @@ document.addEventListener('DOMContentLoaded', function webViewerLoad(evt) {
|
|
|
|
|
|
|
|
|
|
document.getElementById('scaleSelect').addEventListener('change', |
|
|
|
|
function() { |
|
|
|
|
PDFView.parseScale(this.value); |
|
|
|
|
PDFView.setScale(this.value); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
document.getElementById('presentationMode').addEventListener('click', |
|
|
|
@ -1750,7 +1751,7 @@ window.addEventListener('resize', function webViewerResize(evt) {
@@ -1750,7 +1751,7 @@ window.addEventListener('resize', function webViewerResize(evt) {
|
|
|
|
|
(document.getElementById('pageWidthOption').selected || |
|
|
|
|
document.getElementById('pageFitOption').selected || |
|
|
|
|
document.getElementById('pageAutoOption').selected)) { |
|
|
|
|
PDFView.parseScale(document.getElementById('scaleSelect').value); |
|
|
|
|
PDFView.setScale(document.getElementById('scaleSelect').value); |
|
|
|
|
} |
|
|
|
|
updateViewarea(); |
|
|
|
|
|
|
|
|
@ -1949,7 +1950,7 @@ window.addEventListener('keydown', function keydown(evt) {
@@ -1949,7 +1950,7 @@ window.addEventListener('keydown', function keydown(evt) {
|
|
|
|
|
// keeping it unhandled (to restore page zoom to 100%)
|
|
|
|
|
setTimeout(function () { |
|
|
|
|
// ... and resetting the scale after browser adjusts its scale
|
|
|
|
|
PDFView.parseScale(DEFAULT_SCALE, true); |
|
|
|
|
PDFView.setScale(DEFAULT_SCALE, true); |
|
|
|
|
}); |
|
|
|
|
handled = false; |
|
|
|
|
break; |
|
|
|
|