diff --git a/src/main/java/org/verapdf/pd/PDAnnotation.java b/src/main/java/org/verapdf/pd/PDAnnotation.java index 6a112b16..07e3a817 100644 --- a/src/main/java/org/verapdf/pd/PDAnnotation.java +++ b/src/main/java/org/verapdf/pd/PDAnnotation.java @@ -27,6 +27,8 @@ import org.verapdf.exceptions.LoopedException; import org.verapdf.pd.actions.PDAction; import org.verapdf.pd.actions.PDAnnotationAdditionalActions; +import org.verapdf.pd.structure.PDNumberTreeNode; +import org.verapdf.pd.structure.PDStructTreeRoot; import org.verapdf.tools.StaticResources; import org.verapdf.tools.TypeConverter; @@ -132,6 +134,28 @@ public ASAtom getFT() { return null; } + public COSObject getStructElement() { + PDStructTreeRoot structTreeRoot = StaticResources.getDocument().getStructTreeRoot(); + Long structParent = this.getStructParent(); + if (structTreeRoot != null && structParent != null) { + PDNumberTreeNode parentTreeRoot = structTreeRoot.getParentTree(); + return parentTreeRoot == null ? null : parentTreeRoot.getObject(structParent); + } + + return null; + } + + public String getAlt() { + COSObject structureElement = getStructElement(); + if (structureElement != null) { + COSObject baseAlt = structureElement.getKey(ASAtom.ALT); + if (baseAlt != null && baseAlt.getType() == COSObjType.COS_STRING) { + return baseAlt.getString(); + } + } + return null; + } + public double[] getRect() { return TypeConverter.getRealArray(getKey(ASAtom.RECT), 4, "Rect"); }