1{"_id": "685ad089c7195815bd412f81", "createdDate": "2025-06-24T16:21:29.066Z", "jobID": "eq-449702", "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/Bruker-Dimension-Icon-Atomic-Force-Microscopy-Air-Scan.pdf", "size": 1671557}, "validationResult": [{"details": {"passedRules": 1717, "failedRules": 7, "passedChecks": 33915, "failedChecks": 60, "tags": ["figure", "metadata", "alt-text", "structure", "span", "font"], "ruleSummaries": [{"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](672 0 obj PDMetadata)/XMPPackage[0]", "errorMessage": "Metadata stream does not contain dc:title", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. Document-Span", "testNumber": 1, "status": "failed", "failedChecks": 21, "tags": ["structure", "span"], "description": "<Document> shall not contain <Span>", "object": "SESpan", "test": "parentStandardType != 'Document'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[1](146 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[3](154 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[5](162 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[7](168 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[9](176 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[14](185 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[16](196 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[18](207 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[20](217 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[22](227 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[23](229 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[25](234 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[27](239 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[29](244 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[31](249 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[33](254 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[35](259 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[37](264 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[38](265 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[40](273 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[42](280 0 obj SESpan Span)", "errorMessage": "<Document> contains <Span>", "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](672 0 obj PDMetadata)/XMPPackage[0]", "errorMessage": "The document metadata stream doesn't contain PDF/UA Identification Schema", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.2.5.2", "testNumber": 2, "status": "failed", "failedChecks": 1, "tags": ["structure"], "description": "The structure tree root shall contain a single Document structure element as its only child. The namespace for that element shall be specified as the PDF 2.0 namespace", "object": "PDStructTreeRoot", "test": "kidsStandardTypes != 'Document' || firstChildStandardTypeNamespaceURL == 'http://iso.org/pdf2/ssn'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)", "errorMessage": "The structure tree root contains a single Document structure element, but this element is not within the PDF 2.0 namespace (namespace URI = http://iso.org/pdf/ssn)", "errorArguments": ["http://iso.org/pdf/ssn"]}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. Sect-Span", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["structure", "span"], "description": "<Sect> shall not contain <Span>", "object": "SESpan", "test": "parentStandardType != 'Sect'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[176](557 0 obj SESect Textbox)/K[0](558 0 obj SESpan Span)", "errorMessage": "<Sect> contains <Span>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.4.5.5.1", "testNumber": 1, "status": "failed", "failedChecks": 4, "tags": ["font"], "description": "The font programs for all fonts used for rendering within a conforming file shall be embedded within that file, as defined in ISO 32000-2:2020, 9.9", "object": "PDFont", "test": "Subtype == \"Type3\" || Subtype == \"Type0\" || renderingMode == 3 || containsFontFile == true", "checks": [{"status": "failed", "context": "root/document[0]/pages[0](3 0 obj PDPage)/contentStream[0](4 0 obj PDSemanticContentStream)/operators[681]/font[0](ArialMT)", "errorMessage": "The font program is not embedded", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[1](24 0 obj PDPage)/contentStream[0](25 0 obj PDSemanticContentStream)/operators[507]/font[0](TimesNewRomanPSMT)", "errorMessage": "The font program is not embedded", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[5](65 0 obj PDPage)/contentStream[0](66 0 obj PDSemanticContentStream)/operators[103]/font[0](Arial-BoldMT)", "errorMessage": "The font program is not embedded", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[13](129 0 obj PDPage)/contentStream[0](130 0 obj PDSemanticContentStream)/operators[352]/font[0](TimesNewRomanPS-BoldMT)", "errorMessage": "The font program is not embedded", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.2.5.28.2", "testNumber": 1, "status": "failed", "failedChecks": 31, "tags": ["figure", "alt-text", "structure"], "description": "A Figure structure element shall have at least one of the following properties: a) an alternate description (Alt property), as specified in ISO 32000-2:2020, 14.9.3; b) a replacement text (ActualText property) that represents the content enclosed by the Figure structure element", "object": "SEFigure", "test": "Alt != null || ActualText != null", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[51](310 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[52](311 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[53](312 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[55](314 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[67](329 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[81](346 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[87](355 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[88](356 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[93](361 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[94](362 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[106](378 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[109](386 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[114](401 0 obj SEL L)/K[0](403 0 obj SELI LI)/K[0](404 0 obj SELBody LBody)/K[3](408 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[126](424 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[129](430 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[132](454 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[137](467 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[143](476 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[157](518 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[160](524 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[173](551 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[177](560 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[178](561 0 obj SEL L)/K[0](563 0 obj SELI LI)/K[0](564 0 obj SELBody LBody)/K[2](567 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[192](585 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[210](619 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[212](622 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[213](623 0 obj SEL L)/K[0](625 0 obj SELI LI)/K[0](626 0 obj SELBody LBody)/K[1](628 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[219](641 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[220](642 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[222](644 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](138 0 obj PDStructTreeRoot)/K[0](142 0 obj SEDocument Document)/K[225](650 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "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": 1750782085205, "finish": 1750782088891, "duration": "00:00:03.686", "difference": 3686}}], "batchSummary": {"duration": {"start": 1750782084934, "finish": 1750782089013, "duration": "00:00:04.079", "difference": 4079}, "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}}}}