diff --git a/src/main/java/org/verapdf/pd/PDAnnotation.java b/src/main/java/org/verapdf/pd/PDAnnotation.java index c372715d..6a112b16 100644 --- a/src/main/java/org/verapdf/pd/PDAnnotation.java +++ b/src/main/java/org/verapdf/pd/PDAnnotation.java @@ -285,7 +285,8 @@ public PD3DStream get3DD() { public static Boolean isOutsideCropBox(PDPage page, PDAnnotation annotation) { double[] cropBox = page.getCropBox(); double[] rectangle = annotation.getRect(); - if (rectangle != null && rectangle.length >= 4) { + if (rectangle != null && rectangle.length >= 4 + && cropBox != null && cropBox.length >= 4) { return cropBox[1] >= rectangle[3] || cropBox[0] >= rectangle[2] || cropBox[3] <= rectangle[1] || cropBox[2] <= rectangle[0]; } diff --git a/src/main/java/org/verapdf/pd/PDPage.java b/src/main/java/org/verapdf/pd/PDPage.java index dc946149..dc9940f4 100644 --- a/src/main/java/org/verapdf/pd/PDPage.java +++ b/src/main/java/org/verapdf/pd/PDPage.java @@ -148,6 +148,12 @@ public double[] getArtBox() { private double[] clipToMediaBox(double[] box) { double[] res = new double[4]; double[] mediaBox = getMediaBox(); + if (mediaBox == null) { + return box; + } + if (box == null) { + return mediaBox; + } res[0] = Math.max(box[0], mediaBox[0]); res[1] = Math.max(box[1], mediaBox[1]); res[2] = Math.min(box[2], mediaBox[2]);