Compare commits

..

No commits in common. "3f1ecc1ba9fba371cc35f10b6928eb40536d4f78" and "ca05a0dbfc543ce1edbd0bd610085a8efcb46ed2" have entirely different histories.

2 changed files with 28 additions and 12 deletions

View File

@ -665,7 +665,13 @@ class OutputScale {
maxWidthScale = Infinity,
maxHeightScale = Infinity;
maxPixels = OutputScale.capPixels(maxPixels, capAreaFactor);
if (capAreaFactor >= 0) {
const cappedWindowArea = OutputScale.getCappedWindowArea(capAreaFactor);
maxPixels =
maxPixels > 0
? Math.min(maxPixels, cappedWindowArea)
: cappedWindowArea;
}
if (maxPixels > 0) {
maxAreaScale = Math.sqrt(maxPixels / (width * height));
}
@ -687,18 +693,21 @@ class OutputScale {
return globalThis.devicePixelRatio || 1;
}
static capPixels(maxPixels, capAreaFactor) {
if (capAreaFactor >= 0) {
const winPixels = Math.ceil(
(typeof PDFJSDev !== "undefined" && PDFJSDev.test("TESTING")
? window.innerWidth * window.innerHeight
: window.screen.availWidth * window.screen.availHeight) *
static getCappedWindowArea(capAreaFactor) {
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("TESTING")) {
return Math.ceil(
window.innerWidth *
window.innerHeight *
this.pixelRatio ** 2 *
(1 + capAreaFactor / 100)
);
return maxPixels > 0 ? Math.min(maxPixels, winPixels) : winPixels;
}
return maxPixels;
return Math.ceil(
window.screen.availWidth *
window.screen.availHeight *
this.pixelRatio ** 2 *
(1 + capAreaFactor / 100)
);
}
}

View File

@ -140,10 +140,18 @@ class PDFPageDetailView extends BasePDFPageView {
return;
}
const { viewport, maxCanvasPixels, capCanvasAreaFactor } = this.pageView;
const { viewport, capCanvasAreaFactor } = this.pageView;
const visibleWidth = visibleArea.maxX - visibleArea.minX;
const visibleHeight = visibleArea.maxY - visibleArea.minY;
let { maxCanvasPixels } = this.pageView;
if (capCanvasAreaFactor >= 0) {
maxCanvasPixels = Math.min(
maxCanvasPixels,
OutputScale.getCappedWindowArea(capCanvasAreaFactor)
);
}
// "overflowScale" represents which percentage of the width and of the
// height the detail area extends outside of the visible area. We want to
@ -156,8 +164,7 @@ class PDFPageDetailView extends BasePDFPageView {
const visiblePixels =
visibleWidth * visibleHeight * OutputScale.pixelRatio ** 2;
const maxDetailToVisibleLinearRatio = Math.sqrt(
OutputScale.capPixels(maxCanvasPixels, capCanvasAreaFactor) /
visiblePixels
maxCanvasPixels / visiblePixels
);
const maxOverflowScale = (maxDetailToVisibleLinearRatio - 1) / 2;
let overflowScale = Math.min(1, maxOverflowScale);