1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-19 22:58:07 +02:00

Merge pull request #19289 from Snuffleupagus/issue-19281

Skip LinkAnnotations when collecting field objects (issue 19281)
This commit is contained in:
Tim van der Meij 2025-01-04 13:32:18 +01:00 committed by GitHub
commit 4d4e1befeb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 37 additions and 3 deletions

View file

@ -20,6 +20,7 @@ import {
info,
InvalidPDFException,
isArrayEqual,
objectSize,
PageActionEventType,
RenderingIntentFlag,
shadow,
@ -1773,6 +1774,13 @@ class PDFDocument {
if (!(field instanceof Dict)) {
return;
}
let subtype = await field.getAsync("Subtype");
subtype = subtype instanceof Name ? subtype.name : null;
// Skip unrelated annotation types (see issue 19281).
switch (subtype) {
case "Link":
return;
}
if (field.has("T")) {
const partName = stringToPDFString(await field.getAsync("T"));
name = name === "" ? partName : `${name}.${partName}`;
@ -1888,9 +1896,12 @@ class PDFDocument {
})
);
}
await Promise.all(allPromises);
return { allFields, orphanFields };
return {
allFields: objectSize(allFields) > 0 ? allFields : null,
orphanFields,
};
});
return shadow(this, "fieldObjects", promise);
@ -1913,7 +1924,7 @@ class PDFDocument {
if (catalogJsActions) {
return true;
}
if (fieldObjects) {
if (fieldObjects?.allFields) {
return Object.values(fieldObjects.allFields).some(fieldObject =>
fieldObject.some(object => object.actions !== null)
);