pages: [],
thumbnails: [],
currentScale: 0,
+ currentScaleValue: null,
initialBookmark: document.location.hash.substring(1),
setScale: function pdfViewSetScale(val, resetAutoSettings) {
return;
var scale = parseFloat(value);
+ this.currentScaleValue = value;
if (scale) {
this.setScale(scale, true);
return;
if ('zoom' in params) {
var zoomArgs = params.zoom.split(','); // scale,left,top
// building destination array
+
+ // If the zoom value, it has to get divided by 100. If it is a string,
+ // it should stay as it is.
+ var zoomArg = zoomArgs[0];
+ var zoomArgNumber = parseFloat(zoomArg);
+ if (zoomArgNumber)
+ zoomArg = zoomArgNumber / 100;
+
var dest = [null, {name: 'XYZ'}, (zoomArgs[1] | 0),
- (zoomArgs[2] | 0), (zoomArgs[0] | 0) / 100];
+ (zoomArgs[2] | 0), zoomArg];
var currentPage = this.pages[pageNumber - 1];
currentPage.scrollIntoView(dest);
} else
PDFView.page = firstPage.id;
updateViewarea.inProgress = false;
+ var currentScale = PDFView.currentScale;
+ var currentScaleValue = PDFView.currentScaleValue;
+ var normalizedScaleValue = currentScaleValue == currentScale ?
+ currentScale * 100 : currentScaleValue;
+
var kViewerTopMargin = 52;
var pageNumber = firstPage.id;
var pdfOpenParams = '#page=' + pageNumber;
- pdfOpenParams += '&zoom=' + Math.round(PDFView.currentScale * 100);
+ pdfOpenParams += '&zoom=' + normalizedScaleValue;
var currentPage = PDFView.pages[pageNumber - 1];
var topLeft = currentPage.getPagePoint(window.pageXOffset,
window.pageYOffset - firstPage.y - kViewerTopMargin);
var store = PDFView.store;
store.set('exists', true);
store.set('page', pageNumber);
- store.set('zoom', Math.round(PDFView.currentScale * 100));
+ store.set('zoom', normalizedScaleValue);
store.set('scrollLeft', Math.round(topLeft.x));
store.set('scrollTop', Math.round(topLeft.y));