diff --git a/src/core/catalog.js b/src/core/catalog.js index 9db150c8f..46279ae8f 100644 --- a/src/core/catalog.js +++ b/src/core/catalog.js @@ -1062,11 +1062,13 @@ class Catalog { if (obj instanceof Dict && obj.has("XFAImages")) { const nameTree = new NameTree(obj.getRaw("XFAImages"), this.xref); for (const [key, value] of nameTree.getAll()) { - xfaImages ??= new Dict(this.xref); - xfaImages.set( - stringToPDFString(key, /* keepEscapeSequence = */ true), - value - ); + if (value instanceof BaseStream) { + xfaImages ??= new Map(); + xfaImages.set( + stringToPDFString(key, /* keepEscapeSequence = */ true), + value.getBytes() + ); + } } } return shadow(this, "xfaImages", xfaImages); diff --git a/src/core/document.js b/src/core/document.js index d777d0ab9..88283df9f 100644 --- a/src/core/document.js +++ b/src/core/document.js @@ -1238,23 +1238,10 @@ class PDFDocument { } async loadXfaImages() { - const xfaImagesDict = await this.pdfManager.ensureCatalog("xfaImages"); - if (!xfaImagesDict) { + const xfaImages = await this.pdfManager.ensureCatalog("xfaImages"); + if (!xfaImages) { return; } - - const keys = xfaImagesDict.getKeys(); - const objectLoader = new ObjectLoader(xfaImagesDict, keys, this.xref); - await objectLoader.load(); - - const xfaImages = new Map(); - for (const key of keys) { - const stream = xfaImagesDict.get(key); - if (stream instanceof BaseStream) { - xfaImages.set(key, stream.getBytes()); - } - } - this.xfaFactory.setImages(xfaImages); } diff --git a/src/core/xfa/template.js b/src/core/xfa/template.js index 463f6116b..7e7eaac4b 100644 --- a/src/core/xfa/template.js +++ b/src/core/xfa/template.js @@ -3412,8 +3412,7 @@ class Image extends StringObject { return HTMLResult.EMPTY; } - let buffer = - this[$globalData].images && this[$globalData].images.get(this.href); + let buffer = this[$globalData].images?.get(this.href); if (!buffer && (this.href || !this[$content])) { // In general, we don't get remote data and use what we have // in the pdf itself, so no picture for non null href.