Fix handling of "Fit" zoom values in setHash (issue 5581)
This commit is contained in:
parent
50fe7c8d0a
commit
5aad040735
@ -1160,10 +1160,6 @@ var PDFViewerApplication = {
|
|||||||
this.initialBookmark = hash;
|
this.initialBookmark = hash;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var validFitZoomValues = ['Fit','FitB','FitH','FitBH',
|
|
||||||
'FitV','FitBV','FitR'];
|
|
||||||
|
|
||||||
if (!hash) {
|
if (!hash) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1181,23 +1177,39 @@ var PDFViewerApplication = {
|
|||||||
pageNumber = (params.page | 0) || 1;
|
pageNumber = (params.page | 0) || 1;
|
||||||
}
|
}
|
||||||
if ('zoom' in params) {
|
if ('zoom' in params) {
|
||||||
|
// Build the destination array.
|
||||||
var zoomArgs = params.zoom.split(','); // scale,left,top
|
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 zoomArg = zoomArgs[0];
|
||||||
var zoomArgNumber = parseFloat(zoomArg);
|
var zoomArgNumber = parseFloat(zoomArg);
|
||||||
var destName = 'XYZ';
|
|
||||||
if (zoomArgNumber) {
|
if (zoomArg.indexOf('Fit') === -1) {
|
||||||
zoomArg = zoomArgNumber / 100;
|
// If the zoomArg is a number, it has to get divided by 100. If it's
|
||||||
} else if (validFitZoomValues.indexOf(zoomArg) >= 0) {
|
// a string, it should stay as it is.
|
||||||
destName = zoomArg;
|
dest = [null, { name: 'XYZ' },
|
||||||
|
zoomArgs.length > 1 ? (zoomArgs[1] | 0) : null,
|
||||||
|
zoomArgs.length > 2 ? (zoomArgs[2] | 0) : null,
|
||||||
|
(zoomArgNumber ? zoomArgNumber / 100 : zoomArg)];
|
||||||
|
} else {
|
||||||
|
if (zoomArg === 'Fit' || zoomArg === 'FitB') {
|
||||||
|
dest = [null, { name: zoomArg }];
|
||||||
|
} else if ((zoomArg === 'FitH' || zoomArg === 'FitBH') ||
|
||||||
|
(zoomArg === 'FitV' || zoomArg === 'FitBV')) {
|
||||||
|
dest = [null, { name: zoomArg },
|
||||||
|
zoomArgs.length > 1 ? (zoomArgs[1] | 0) : null];
|
||||||
|
} else if (zoomArg === 'FitR') {
|
||||||
|
if (zoomArgs.length !== 5) {
|
||||||
|
console.error('pdfViewSetHash: ' +
|
||||||
|
'Not enough parameters for \'FitR\'.');
|
||||||
|
} else {
|
||||||
|
dest = [null, { name: zoomArg },
|
||||||
|
(zoomArgs[1] | 0), (zoomArgs[2] | 0),
|
||||||
|
(zoomArgs[3] | 0), (zoomArgs[4] | 0)];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.error('pdfViewSetHash: \'' + zoomArg +
|
||||||
|
'\' is not a valid zoom value.');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dest = [null, { name: destName },
|
|
||||||
zoomArgs.length > 1 ? (zoomArgs[1] | 0) : null,
|
|
||||||
zoomArgs.length > 2 ? (zoomArgs[2] | 0) : null,
|
|
||||||
zoomArg];
|
|
||||||
}
|
}
|
||||||
if (dest) {
|
if (dest) {
|
||||||
this.pdfViewer.scrollPageIntoView(pageNumber || this.page, dest);
|
this.pdfViewer.scrollPageIntoView(pageNumber || this.page, dest);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user