📦 EqualifyEverything / equalify-uic-analysis

📄 job_eq-449787.json · 1 lines
1{"_id": "685ad16fbdb84d59207817c9", "createdDate": "2025-06-24T16:25:19.776Z", "jobID": "eq-449787", "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/Commuter-Student-Engagement-FY-2009-Analysis.pdf", "size": 730180}, "validationResult": [{"details": {"passedRules": 1716, "failedRules": 8, "passedChecks": 26211, "failedChecks": 43, "tags": ["artifact", "metadata", "alt-text", "syntax", "text", "structure", "font"], "ruleSummaries": [{"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](39 0 obj PDStructTreeRoot)", "errorMessage": "StructTreeRoot either doesn't contain or contains more than one <Document>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.2.2", "testNumber": 1, "status": "failed", "failedChecks": 17, "tags": ["artifact"], "description": "Content that is not considered real shall be an artifact", "object": "SESimpleContentItem", "test": "isTaggedContent == true || parentsTags.contains('Artifact') == true", "checks": [{"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[4]/contentItem[0]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[4]/contentItem[1]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[4]/contentItem[2]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[4]/contentItem[3]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[4]/contentItem[4]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[4]/contentItem[5]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[4]/contentItem[6]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[8]/contentItem[0]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[8]/contentItem[1]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[8]/contentItem[2]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[8]/contentItem[3]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[8]/contentItem[4]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[8]/contentItem[5]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[8]/contentItem[6]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[8]/contentItem[7]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[8]/contentItem[8]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/content[8]/contentItem[9]", "errorMessage": "Content is neither marked as Artifact nor tagged as real content", "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](39 0 obj PDStructTreeRoot)", "errorMessage": "The structure tree root contains Sect element(s) instead of a single Document structure element", "errorArguments": ["Sect"]}]}, {"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](39 0 obj PDStructTreeRoot)/K[0](40 0 obj SESect Sect)", "errorMessage": "StructTreeRoot contains <Sect>", "errorArguments": []}]}, {"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 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](27 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.4.3", "testNumber": 1, "status": "failed", "failedChecks": 17, "tags": ["alt-text", "text"], "description": "In all cases, where real content maps to Unicode PUA values, an ActualText or Alt entry shall be present", "object": "Glyph", "test": "isRealContent == false || unicodePUA == false || actualTextPresent == true || altPresent == true", "checks": [{"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[405]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 201392112 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[423]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 238874235 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[441]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 1911138454 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[459]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 112797307 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[477]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 1082865087 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[520]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 1137078855 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[538]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 1027200 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[556]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 1919125229 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[575]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 1688150025 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[593]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 347808407 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[611]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 1773008684 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[629]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 127356954 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[665]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 1817154869 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[684]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 1540476618 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[702]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 818093527 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[719]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 1234905692 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[736]/usedGlyphs[0](RPJQCP+Wingdings-Regular RPJQCP+Wingdings-Regular 190 0 1500379239 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "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](490 0 obj PDPage)/contentStream[0]/operators[6]/font[0](TimesNewRomanPSMT)", "errorMessage": "The font program is not embedded", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[55]/font[0](TimesNewRomanPS-BoldMT)", "errorMessage": "The font program is not embedded", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[408]/font[0](ArialMT)", "errorMessage": "The font program is not embedded", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](490 0 obj PDPage)/contentStream[0]/operators[418]/font[0](TimesNewRomanPS-BoldItalicMT)", "errorMessage": "The font program is not embedded", "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": 1750782316348, "finish": 1750782319619, "duration": "00:00:03.271", "difference": 3271}}], "batchSummary": {"duration": {"start": 1750782316154, "finish": 1750782319720, "duration": "00:00:03.566", "difference": 3566}, "totalJobs": 1, "outOfMemory": 0, "veraExceptions": 0, "featuresSummary": {"failedJobCount": 0, "totalJobCount": 0, "successfulJobCount": 0}, "repairSummary": {"failedJobCount": 0, "totalJobCount": 0, "successfulJobCount": 0}, "multiJob": false, "failedEncryptedJobs": 0, "failedParsingJobs": 0, "validationSummary": {"compliantPdfaCount": 0, "failedJobCount": 0, "totalJobCount": 1, "nonCompliantPdfaCount": 1, "successfulJobCount": 1}}}}}