From 2be378940c8118c49fb5c6001ec6c38a9ad9d116 Mon Sep 17 00:00:00 2001 From: Maxim Date: Wed, 17 Apr 2024 21:21:29 +0300 Subject: [PATCH] Profile merger. Add WTPDF profile --- pom.xml | 1 + .../profile-merger-1.0-SNAPSHOT.jar | Bin 5966790 -> 5967269 bytes .../main/java/org/verapdf/ProfileMerger.java | 44 +++++++++++++++++- 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 55f9c7d..6f2bb9d 100644 --- a/pom.xml +++ b/pom.xml @@ -30,6 +30,7 @@ preforma-classification profile-merger profiles-wiki-generation + tagged-pdf-generation tagged-structure-merger verapdf-examples veraPDF-parsers-performance diff --git a/profile-merger/profile-merger-1.0-SNAPSHOT.jar b/profile-merger/profile-merger-1.0-SNAPSHOT.jar index 341a2c0539b0df09109ff8fd930b847913487ba6..25f41458788fc632be09efee2e154ebafb45672f 100644 GIT binary patch delta 7366 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 delta 6896 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 diff --git a/profile-merger/src/main/java/org/verapdf/ProfileMerger.java b/profile-merger/src/main/java/org/verapdf/ProfileMerger.java index d2500d9..5d48429 100644 --- a/profile-merger/src/main/java/org/verapdf/ProfileMerger.java +++ b/profile-merger/src/main/java/org/verapdf/ProfileMerger.java @@ -91,6 +91,27 @@ private static void updatePDFUAProfiles(ZipFile zipSource) { excludedWCAGRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_1, "7.18.5", 2)); generateProfile(zipSource, "WCAG-2-2-Complete.xml", PDFUA_FOLDER, new String[]{"WCAG/2.2", "WCAG/PDF_UA", "1"}, new String[]{}, excludedWCAGRules); generateProfile(zipSource, WCAG_MACHINE_PROFILE_NAME, PDFUA_FOLDER, new String[]{"WCAG/2.2", "WCAG/PDF_UA", "1"}, new String[]{}, excludedWCAGRules); + List excludedWTPDFRules = new ArrayList<>(18);//not for reuse + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "5", 1)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "5", 2)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "5", 3)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "5", 4)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "5", 5)); + generateProfile(zipSource, "WTPDF-1-0-Accessibility.xml", PDFUA_FOLDER, new String[]{"2", "WTPDF/1.0/Accessibility"}, new String[]{}, excludedWTPDFRules); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.2.5.28.2", 1)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.2.5.29", 1)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.4.3", 1)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.4.3", 2)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.4.3", 3)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.7", 1)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.7", 2)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.9.2.3", 2)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.9.2.4.7", 1)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.9.2.4.8", 1)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.9.2.4.19", 1)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.9.2.4.19", 2)); + excludedWTPDFRules.add(Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_14289_2, "8.11.2", 1)); + generateProfile(zipSource, "WTPDF-1-0-Reuse.xml", PDFUA_FOLDER, new String[]{"2", "WTPDF/1.0/Reuse"}, new String[]{}, excludedWTPDFRules); } private static void generateProfile(ZipFile zipSource, String generalProfileName, String folder, String[] folders, @@ -153,6 +174,9 @@ private static void addRules(String generalProfileName, ValidationProfile profil if (generalProfileName.contains("PDFA-3") && rule.getRuleId().getSpecification() == PDFAFlavour.Specification.ISO_19005_2) { rule = updatePDFA2RuleToPDFA3(rule); } + if (generalProfileName.contains("WTPDF")) { + rule = updatePDFUA1RuleToWTPDF(rule); + } if (generalProfileName.contains("PDFUA-1")) { rule = updatePDFUA1RuleTags(rule); } @@ -167,7 +191,25 @@ private static void addRules(String generalProfileName, ValidationProfile profil variables.addAll(profile.getVariables()); } } - + + private static Rule updatePDFUA1RuleToWTPDF(Rule rule) { + RuleId ruleId = Profiles.ruleIdFromValues(PDFAFlavour.Specification.WTPDF_1_0, rule.getRuleId().getClause(), + rule.getRuleId().getTestNumber()); + List references = new ArrayList<>(rule.getReferences().size()); + for (Reference reference : rule.getReferences()) { + if (reference.getSpecification().contains("ISO 14289-2:2024")) { + reference = Profiles.referenceFromValues(reference.getSpecification().replace("ISO 14289-2:2024", + "WTPDF 1.0"), reference.getClause()); + } + references.add(reference); + } + String description = rule.getDescription().replace("PDF/UA-2", "WTPDF 1.0") + .replace("ISO 14289-2", "WTPDF 1.0"); + return Profiles.ruleFromValues(ruleId, rule.getObject(), rule.getDeferred(), rule.getTags(), description, + rule.getTest(), rule.getError(), references); + + } + private static Rule updatePDFA2RuleToPDFA3(Rule rule) { RuleId ruleId = Profiles.ruleIdFromValues(PDFAFlavour.Specification.ISO_19005_3, rule.getRuleId().getClause(), rule.getRuleId().getTestNumber());