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 3519fe45..695e51da 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