Java PDFBox-可访问PDF-如何根据可访问性指南检查PDF标记是否具有属性

Java PDFBox-可访问PDF-如何根据可访问性指南检查PDF标记是否具有属性,java,pdf,accessibility,pdfbox,Java,Pdf,Accessibility,Pdfbox,需要根据可访问性指南检查PDF标记是否具有属性。 示例: H1-验证PDF中是否存在H1 图像(图形标记)-验证图像\Figure具有Alt文本 语言-验证是否设置了语言属性,以便屏幕阅读器能够正确读取。对于西班牙语和英语文件,应更新各自的语言代码 表-访问表对象并验证表结构是否正确(标题列与行列匹配等) 到目前为止,我能够: 通过PDDocument.getDocumentInformation().getMetadataKeys()提取元数据并验证文档是否具有正确的标题、主题和生产者信

需要根据可访问性指南检查PDF标记是否具有属性。 示例:

  • H1-验证PDF中是否存在H1
  • 图像(图形标记)-验证图像\Figure具有Alt文本
  • 语言-验证是否设置了语言属性,以便屏幕阅读器能够正确读取。对于西班牙语和英语文件,应更新各自的语言代码
  • 表-访问表对象并验证表结构是否正确(标题列与行列匹配等)
到目前为止,我能够:

  • 通过
    PDDocument.getDocumentInformation().getMetadataKeys()提取元数据并验证文档是否具有正确的标题、主题和生产者信息
  • 通过检查
    PDDocument.getDocumentCatalog().getMarkInfo().isMarked(),验证PDF是否可访问标志
为了访问标签,我尝试了以下选项:

  • getDocumentCatalog().getAcroForm()
    返回空值
  • PDDocument.getDocumentCatalog().getPages().get(0.getAnnotations()返回空值
  • 我尝试在
    PDDocument.getDocumentCatalog().getStructureTreeRoot().getKids()
    中循环,但它只返回1
    StructElem
    类型对象
可访问PDF的创建是使用OpenText完成的,所以开发团队不知道PDFBox。 我在这里迷失了如何访问标记/对象(使用MarkedContent或其他东西)

请建议如何提取单个对象(标记),如p、H1、表格、图形/图像,并验证其属性。
注意:这些属性的手动验证是使用Adobe Acrobat Pro执行的。基于,您似乎可以使用PDFMarkedContentExtractor来获取所需的信息

请共享包含这些标签的PDF并ping我。您正在搜索的内容位于结构树中,也可以使用PDFDebugger查看。@Tilmanhausher感谢您的回复。不幸的是,我无法共享我必须验证的PDF。以下是示例PDF。在下面的PDF中,我需要验证狐狸和狗的图片是否有正确的alt文本。在下面的PDF中,我需要验证表结构是否正确。就像它有TH,TBody标签一样。每个TD都被映射。我看了一下…这比我想象的要复杂,对不起。如果您使用PDFDebugger查看它,您将看到原因:-(没问题,谢谢您的检查。我以前没有使用过PDFDebugger,请检查。@SachinG您对此有什么线索吗?另外,
PDDocument.getDocumentCatalog().getStructureTreeRoot().getKids()但是它只返回1个StructElem类型的对象
,你有没有找到一种方法来迭代这个
struccelem