public DacReport isPdfAccessible(String sourceFile) { DacReport dr = new DacReport(); PdfReader reader = new PdfReader(sourceFile); if (reader.IsTagged()) { dr.IsTagged = true; var trailerKeys = reader.Trailer.Keys; var catalogKeys = reader.Catalog.Keys; //continue checking for accessibility, possibly follow the Matterhorn Protocol /* * 01-003 Content marked as Artifact is present inside tagged content. * 01-004 Tagged content is present inside content marked as Artifact. * 01-005 Content is neither marked as Artifact nor tagged as real content. * 01-007 Suspect entry has a value of true. * 02-001 One or more non-standard tag’s mapping does not terminate with a standard type. * 02-003 A circular mapping exists. * 02-004 One or more standard types are remapped. * 06-001 Document does not contain XMP metadata stream * 06-002 The metadata stream in the Catalog dictionary does not include the PDF/UA identifier. * 06-003 Metadata stream does not contain dc:title * 07-001 ViewerPreferences dictionary of the Catalog dictionary does not contain DisplayDocTitle key. * 07-002 ViewerPreferences dictionary of the Catalog dictionary contains DisplayDocTitle key with a value of false. * 09-004 A table-related structure element is used in a way that does not conform to the syntax defined in ISO 32000-1, Table 337. * 09-005 A list-related structure element is used in a way that does not conform to Table 336 in ISO 32000-1. * 09-006 A TOC-related structure element is used in a way that does not conform to Table 333 in ISO 32000-1. * 09-007 A Ruby-related structure element is used in a way that does not conform to Table 338 in ISO 32000-1. * 09-008 A Warichu-related structure element is used in a way that does not conform to Table 338 in ISO 32000-1. * 10-001 Character code cannot be mapped to Unicode. * 11-001 Natural language for text in page content cannot be determined. * 11-002 Natural language for text in “Alt”, “ActualText” and “E” attributes cannot be determined. * 11-003 Natural language in the Outline entries cannot be determined. * 11-004 Natural language in the “Contents” entry for annotations cannot be determined. * 11-005 Natural language in the TU key for form fields cannot be determined. * 11-006 Natural language for document metadata cannot be determined. * 13-004 Figure tag alternative or replacement text missing. * 14-002 Does use numbered headings, but the first heading tag is not H1. * 14-003 Numbered heading levels in descending sequence are skipped (Example: H3 follows directly after H1). */ } else { dr.IsTagged = false; } return(dr); }
public DacReport isPdfAccessible(String sourceFile) { DacReport dr = new DacReport(); PdfReader reader = new PdfReader(sourceFile); if (reader.IsTagged()) { dr.IsTagged = true; var trailerKeys = reader.Trailer.Keys; var catalogKeys = reader.Catalog.Keys; //continue checking for accessibility, possibly follow the Matterhorn Protocol /* * 01-003 Content marked as Artifact is present inside tagged content. * 01-004 Tagged content is present inside content marked as Artifact. * 01-005 Content is neither marked as Artifact nor tagged as real content. * 01-007 Suspect entry has a value of true. * 02-001 One or more non-standard tag’s mapping does not terminate with a standard type. * 02-003 A circular mapping exists. * 02-004 One or more standard types are remapped. * 06-001 Document does not contain XMP metadata stream * 06-002 The metadata stream in the Catalog dictionary does not include the PDF/UA identifier. * 06-003 Metadata stream does not contain dc:title * 07-001 ViewerPreferences dictionary of the Catalog dictionary does not contain DisplayDocTitle key. * 07-002 ViewerPreferences dictionary of the Catalog dictionary contains DisplayDocTitle key with a value of false. * 09-004 A table-related structure element is used in a way that does not conform to the syntax defined in ISO 32000-1, Table 337. * 09-005 A list-related structure element is used in a way that does not conform to Table 336 in ISO 32000-1. * 09-006 A TOC-related structure element is used in a way that does not conform to Table 333 in ISO 32000-1. * 09-007 A Ruby-related structure element is used in a way that does not conform to Table 338 in ISO 32000-1. * 09-008 A Warichu-related structure element is used in a way that does not conform to Table 338 in ISO 32000-1. * 10-001 Character code cannot be mapped to Unicode. * 11-001 Natural language for text in page content cannot be determined. * 11-002 Natural language for text in “Alt”, “ActualText” and “E” attributes cannot be determined. * 11-003 Natural language in the Outline entries cannot be determined. * 11-004 Natural language in the “Contents” entry for annotations cannot be determined. * 11-005 Natural language in the TU key for form fields cannot be determined. * 11-006 Natural language for document metadata cannot be determined. * 13-004 Figure tag alternative or replacement text missing. * 14-002 Does use numbered headings, but the first heading tag is not H1. * 14-003 Numbered heading levels in descending sequence are skipped (Example: H3 follows directly after H1). */ } else { dr.IsTagged = false; } return dr; }