1{"_id": "685ad36e03ccdc0557334acd", "createdDate": "2025-06-24T16:33:50.366Z", "jobID": "eq-450034", "PDFresults": {"report": {"buildInformation": {"releaseDetails": [{"id": "core", "version": "1.28.1", "buildDate": 1745946180000}, {"id": "validation-model", "version": "1.28.1", "buildDate": 1745953500000}, {"id": "gui", "version": "1.28.1", "buildDate": 1748123640000}]}, "jobs": [{"itemDetails": {"name": "/home/pdf-worker/www/dist/scanners/Phase-2-VERIFICATION_OF_ASPIRANTS_FORM.pdf", "size": 160916}, "validationResult": [{"details": {"passedRules": 1711, "failedRules": 13, "passedChecks": 15848, "failedChecks": 46, "tags": ["paragraph", "metadata", "syntax", "structure", "table", "span"], "ruleSummaries": [{"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.2.5.26", "testNumber": 4, "status": "failed", "failedChecks": 1, "tags": ["structure", "table"], "description": "Tables shall be regular. Table rows shall have the same number of columns (taking into account column spans)", "object": "SETable", "test": "numberOfRowWithWrongColumnSpan == null || wrongColumnSpan == null", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)", "errorMessage": "Table rows 1 and 22 span different number of columns (4 and 2 respectively)", "errorArguments": ["22", "4", "2"]}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-Hn", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["structure"], "description": "StructTreeRoot shall not contain <Hn>", "object": "SEHn", "test": "parentStandardType != 'StructTreeRoot'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[0](17 0 obj SEHn H1)", "errorMessage": "StructTreeRoot contains <Hn>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "5", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["metadata"], "description": "The PDF/UA version of a file shall be specified in the value of the Metadata entry in the document catalog using the PDF/UA identification schema", "object": "MainXMPPackage", "test": "containsPDFUAIdentification == true", "checks": [{"status": "failed", "context": "root/document[0]/metadata[0](6 0 obj PDMetadata)/XMPPackage[0]", "errorMessage": "The document metadata stream doesn't contain PDF/UA Identification Schema", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. TR-Span", "testNumber": 1, "status": "failed", "failedChecks": 23, "tags": ["structure", "span"], "description": "<TR> shall not contain <Span>", "object": "SESpan", "test": "parentStandardType != 'TR'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[1](18 0 obj SESect Textbox)/K[0](276 0 obj SETable Table)/K[4](282 0 obj SETR TR)/K[0](283 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[0](32 0 obj SETR TR)/K[0](261 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[1](33 0 obj SETR TR)/K[0](251 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[2](34 0 obj SETR TR)/K[0](241 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[3](35 0 obj SETR TR)/K[0](231 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[4](36 0 obj SETR TR)/K[0](221 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[5](37 0 obj SETR TR)/K[0](211 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[6](38 0 obj SETR TR)/K[0](201 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[7](39 0 obj SETR TR)/K[0](191 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[8](40 0 obj SETR TR)/K[0](181 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[9](41 0 obj SETR TR)/K[0](171 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[10](42 0 obj SETR TR)/K[0](161 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[11](43 0 obj SETR TR)/K[0](151 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[12](44 0 obj SETR TR)/K[0](141 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[13](45 0 obj SETR TR)/K[0](131 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[14](46 0 obj SETR TR)/K[0](121 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[15](47 0 obj SETR TR)/K[0](111 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[16](48 0 obj SETR TR)/K[0](101 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[17](49 0 obj SETR TR)/K[0](91 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[18](50 0 obj SETR TR)/K[0](81 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[19](51 0 obj SETR TR)/K[0](71 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[20](52 0 obj SETR TR)/K[0](61 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)/K[0](31 0 obj SETBody TBody)/K[21](53 0 obj SETR TR)/K[0](54 0 obj SESpan Span)", "errorMessage": "<TR> contains <Span>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-P", "testNumber": 1, "status": "failed", "failedChecks": 12, "tags": ["paragraph", "structure"], "description": "StructTreeRoot shall not contain <P>", "object": "SEP", "test": "parentStandardType != 'StructTreeRoot'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[2](19 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[3](20 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[4](21 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[5](22 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[6](23 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[7](24 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[8](25 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[9](26 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[10](27 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[11](28 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[12](29 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[14](15 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-Document", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["structure"], "description": "StructTreeRoot shall contain exactly one <Document>", "object": "PDStructTreeRoot", "test": "kidsStandardTypes.split('&').filter(elem => elem == 'Document').length == 1", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)", "errorMessage": "StructTreeRoot either doesn't contain or contains more than one <Document>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-Sect", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["structure"], "description": "StructTreeRoot shall not contain <Sect>", "object": "SESect", "test": "parentStandardType != 'StructTreeRoot'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[1](18 0 obj SESect Textbox)", "errorMessage": "StructTreeRoot contains <Sect>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.2.5.2", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["structure"], "description": "The structure tree root shall contain a single Document structure element as its only child, as specified in ISO 32000-2:2020, Annex L and ISO/TS 32005", "object": "PDStructTreeRoot", "test": "kidsStandardTypes == 'Document'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)", "errorMessage": "The structure tree root contains H1,Sect,P,P,P,P,P,P,P,P,P,P,P,Table,P element(s) instead of a single Document structure element", "errorArguments": ["H1,Sect,P,P,P,P,P,P,P,P,P,P,P,Table,P"]}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.11.2", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["syntax"], "description": "The ViewerPreferences dictionary of the document catalog dictionary shall be present and shall contain at least the DisplayDocTitle key with a value of true, as described in ISO 32000-2:2020, Table 147", "object": "CosDocument", "test": "DisplayDocTitle == true", "checks": [{"status": "failed", "context": "root", "errorMessage": "ViewerPreferences dictionary is not present in the document Catalog, or DisplayDocTitle key is set to false or is not present in the ViewerPreferences dictionary (ViewerPreferences = null, DisplayDocTitle = null)", "errorArguments": [null, null]}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-Table", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["structure", "table"], "description": "StructTreeRoot shall not contain <Table>", "object": "SETable", "test": "parentStandardType != 'StructTreeRoot'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[13](30 0 obj SETable Table)", "errorMessage": "StructTreeRoot contains <Table>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-Part", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["structure"], "description": "StructTreeRoot shall not contain <Part>", "object": "SEPart", "test": "parentStandardType != 'StructTreeRoot'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)", "errorMessage": "StructTreeRoot contains <Part>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.2.5.26", "testNumber": 3, "status": "failed", "failedChecks": 1, "tags": ["structure", "table"], "description": "Tables shall be regular. Table rows shall have the same number of columns (taking into account column spans)", "object": "SETable", "test": "numberOfRowWithWrongColumnSpan == null || wrongColumnSpan != null", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](10 0 obj PDStructTreeRoot)/K[0](16 0 obj SEPart Part)/K[1](18 0 obj SESect Textbox)/K[0](276 0 obj SETable Table)", "errorMessage": "Table rows 1 and 2 span different number of columns", "errorArguments": ["2"]}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.11.1", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["metadata"], "description": "The Metadata stream as specified in ISO 32000-2:2020, 14.3 in the document catalog dictionary shall contain a dc:title entry", "object": "MainXMPPackage", "test": "dc_title != null", "checks": [{"status": "failed", "context": "root/document[0]/metadata[0](6 0 obj PDMetadata)/XMPPackage[0]", "errorMessage": "Metadata stream does not contain dc:title", "errorArguments": []}]}]}, "jobEndStatus": "normal", "profileName": "PDF/UA-2 + Tagged PDF validation profile", "statement": "PDF file is not compliant with Validation Profile requirements.", "compliant": false}], "processingTime": {"start": 1750782826386, "finish": 1750782830158, "duration": "00:00:03.772", "difference": 3772}}], "batchSummary": {"duration": {"start": 1750782826041, "finish": 1750782830314, "duration": "00:00:04.273", "difference": 4273}, "totalJobs": 1, "outOfMemory": 0, "veraExceptions": 0, "failedEncryptedJobs": 0, "failedParsingJobs": 0, "validationSummary": {"nonCompliantPdfaCount": 1, "compliantPdfaCount": 0, "failedJobCount": 0, "totalJobCount": 1, "successfulJobCount": 1}, "featuresSummary": {"failedJobCount": 0, "totalJobCount": 0, "successfulJobCount": 0}, "repairSummary": {"failedJobCount": 0, "totalJobCount": 0, "successfulJobCount": 0}, "multiJob": false}}}}