diff --git a/validator/src/main/java/org/mustangproject/validator/PDFValidator.java b/validator/src/main/java/org/mustangproject/validator/PDFValidator.java index 6588b7f7..c42caa9e 100644 --- a/validator/src/main/java/org/mustangproject/validator/PDFValidator.java +++ b/validator/src/main/java/org/mustangproject/validator/PDFValidator.java @@ -52,7 +52,7 @@ public class PDFValidator extends Validator { } private static final Logger LOGGER = LoggerFactory.getLogger(PDFValidator.class.getCanonicalName()); // log output - private static final PDFAFlavour[] PDF_A_3_FLAVOURS = {PDFAFlavour.PDFA_3_A, PDFAFlavour.PDFA_3_A, PDFAFlavour.PDFA_3_A}; + private static final PDFAFlavour[] PDF_A_3_FLAVOURS = {PDFAFlavour.PDFA_3_A, PDFAFlavour.PDFA_3_B, PDFAFlavour.PDFA_3_U}; private String pdfFilename; @@ -301,8 +301,10 @@ public class PDFValidator extends Validator { if (!processorResult.getValidationResult().isCompliant()) { context.setInvalid(); } + + PDFAFlavour pdfaFlavourFromValidationResult = processorResult.getValidationResult().getPDFAFlavour(); if (Arrays.stream(PDF_A_3_FLAVOURS) - .anyMatch(pdfaFlavour -> processorResult.getValidationResult().getPDFAFlavour().equals(pdfaFlavour))) { + .noneMatch(pdfaFlavourFromValidationResult::equals)) { context.addResultItem( new ValidationResultItem(ESeverity.error, "Not a PDF/A-3").setSection(23).setPart(EPart.pdf)); diff --git a/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java b/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java index 3293ebf3..899c0816 100644 --- a/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java +++ b/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java @@ -141,6 +141,17 @@ public class ZUGFeRDValidatorTest extends ResourceCase { } + public void testPDFA3AValidation() { + File tempFile = getResourceAsFile("zugferd_2p1_EXTENDED_PDFA-3A.pdf"); + + ZUGFeRDValidator zfv = new ZUGFeRDValidator(); + + String res = zfv.validate(tempFile.getAbsolutePath()); + + assertThat(res).valueByXPath("/validation/pdf/summary/@status") + .isEqualTo("valid"); + } + /*** * the XMLValidatorTests only cover the part, this one includes the root element and * the global part as well diff --git a/validator/src/test/resources/zugferd_2p1_EXTENDED_PDFA-3A.pdf b/validator/src/test/resources/zugferd_2p1_EXTENDED_PDFA-3A.pdf new file mode 100644 index 00000000..a4610175 Binary files /dev/null and b/validator/src/test/resources/zugferd_2p1_EXTENDED_PDFA-3A.pdf differ