1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-22 16:18:08 +02:00

Allow /XYZ destinations without zoom parameter (issue 18408)

According to the PDF specification these destinations should have a zoom parameter, which may however be `null`, but it shouldn't be omitted; please see https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf#G11.2095870

Hence we try to work-around bad PDF generators by making the zoom parameter optional when validating explicit destinations in both the worker and the viewer.
This commit is contained in:
Jonas Jenwald 2024-07-18 12:33:29 +02:00
parent e1f64a5b3e
commit d24a61c648
5 changed files with 54 additions and 8 deletions

View file

@ -64,26 +64,27 @@ function isValidExplicitDest(dest) {
if (!(zoom instanceof Name)) {
return false;
}
const argsLen = args.length;
let allowNull = true;
switch (zoom.name) {
case "XYZ":
if (args.length !== 3) {
if (argsLen < 2 || argsLen > 3) {
return false;
}
break;
case "Fit":
case "FitB":
return args.length === 0;
return argsLen === 0;
case "FitH":
case "FitBH":
case "FitV":
case "FitBV":
if (args.length > 1) {
if (argsLen > 1) {
return false;
}
break;
case "FitR":
if (args.length !== 4) {
if (argsLen !== 4) {
return false;
}
allowNull = false;