From dd11d44bc33e1f308304fb0bcf8e4bb377603767 Mon Sep 17 00:00:00 2001 From: Maxim Date: Thu, 14 Mar 2024 21:47:44 +0300 Subject: [PATCH] Disable content item parsing for annotation appearance stream --- .../java/org/verapdf/gf/model/impl/pd/GFPDAnnot.java | 2 +- .../org/verapdf/gf/model/impl/pd/images/GFPDXForm.java | 10 ++++++---- .../verapdf/gf/model/impl/pd/images/GFPDXObject.java | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/validation-model/src/main/java/org/verapdf/gf/model/impl/pd/GFPDAnnot.java b/validation-model/src/main/java/org/verapdf/gf/model/impl/pd/GFPDAnnot.java index c242dbc6d..25accb609 100644 --- a/validation-model/src/main/java/org/verapdf/gf/model/impl/pd/GFPDAnnot.java +++ b/validation-model/src/main/java/org/verapdf/gf/model/impl/pd/GFPDAnnot.java @@ -436,7 +436,7 @@ private void addAppearance(List list, PDAppearanceStream toAdd) { PDResourcesHandler resources = this.resources.getExtendedResources(toAdd.getResources()); COSString annotLang = getLang(); GFPDXForm xForm = new GFPDXForm(toAdd, resources, null, getParentDictionary(), "", - annotLang == null ? null : annotLang.getString(), isSignature()); + annotLang == null ? null : annotLang.getString(), true, isSignature()); this.containsTransparency |= xForm.containsTransparency(); list.add(xForm); } diff --git a/validation-model/src/main/java/org/verapdf/gf/model/impl/pd/images/GFPDXForm.java b/validation-model/src/main/java/org/verapdf/gf/model/impl/pd/images/GFPDXForm.java index 464e16eb6..e97e6ea2f 100644 --- a/validation-model/src/main/java/org/verapdf/gf/model/impl/pd/images/GFPDXForm.java +++ b/validation-model/src/main/java/org/verapdf/gf/model/impl/pd/images/GFPDXForm.java @@ -67,16 +67,18 @@ public class GFPDXForm extends GFPDXObject implements PDXForm { private final PDColorSpace blendingColorSpace; private final boolean isSignature; + private final boolean isAnnotation; public GFPDXForm(org.verapdf.pd.images.PDXForm simplePDObject, PDResourcesHandler resourcesHandler, GraphicState inheritedGraphicState, COSObject parentStructElem, String parentsTags, - String defaultLang, boolean isSignature) { + String defaultLang, boolean isAnnotation, boolean isSignature) { super(simplePDObject, resourcesHandler.getExtendedResources(simplePDObject.getResources()), X_FORM_TYPE); this.inheritedGraphicState = inheritedGraphicState; this.parentStructElem = parentStructElem; this.parentsTags = parentsTags; this.blendingColorSpace = getBlendingColorSpace(); this.defaultLang = defaultLang; + this.isAnnotation = isAnnotation; this.isSignature = isSignature; } @@ -197,10 +199,9 @@ private void initializeGroups() { } private void parseContentStream() { - List streams = new ArrayList<>(MAX_NUMBER_OF_ELEMENTS); GFPDContentStream gfContentStream; - if (!PDFAFlavour.IsoStandardSeries.ISO_14289.equals(StaticContainers.getFlavour().getPart().getSeries()) && - PDFAFlavour.SpecificationFamily.WCAG != StaticContainers.getFlavour().getPart().getFamily()) { + if (isAnnotation || (PDFAFlavour.IsoStandardSeries.ISO_14289 != StaticContainers.getFlavour().getPart().getSeries() && + PDFAFlavour.SpecificationFamily.WCAG != StaticContainers.getFlavour().getPart().getFamily())) { gfContentStream = new GFPDContentStream( (org.verapdf.pd.images.PDXForm) this.simplePDObject, resourcesHandler, this.inheritedGraphicState, new StructureElementAccessObject(this.simpleCOSObject), @@ -212,6 +213,7 @@ this.inheritedGraphicState, new StructureElementAccessObject(this.simpleCOSObjec parentStructElem, parentsTags, defaultLang, isSignature); } this.contentStreamContainsTransparency = gfContentStream.isContainsTransparency(); + List streams = new ArrayList<>(MAX_NUMBER_OF_ELEMENTS); streams.add(gfContentStream); this.contentStreams = streams; } diff --git a/validation-model/src/main/java/org/verapdf/gf/model/impl/pd/images/GFPDXObject.java b/validation-model/src/main/java/org/verapdf/gf/model/impl/pd/images/GFPDXObject.java index 456df9162..5d9845538 100644 --- a/validation-model/src/main/java/org/verapdf/gf/model/impl/pd/images/GFPDXObject.java +++ b/validation-model/src/main/java/org/verapdf/gf/model/impl/pd/images/GFPDXObject.java @@ -69,7 +69,7 @@ public static PDXObject getTypedPDXObject(org.verapdf.pd.images.PDXObject xObjec GraphicState inheritedGraphicState, COSObject parentStructElem, String parentsTags) { ASAtom type = xObject.getType(); if (ASAtom.FORM.equals(type)) { - return new GFPDXForm((PDXForm) xObject, resources, inheritedGraphicState, parentStructElem, parentsTags, null, false); + return new GFPDXForm((PDXForm) xObject, resources, inheritedGraphicState, parentStructElem, parentsTags, null, false, false); } else if (ASAtom.IMAGE.equals(type)) { return new GFPDXImage((PDXImage) xObject, resources, inheritedGraphicState.getFillColorSpace()); } else if (ASAtom.PS.equals(type)) {