PDFBox-可访问PDF-如何根据可访问性准则检查PDF标签是否具有属性

时间:2018-12-27 16:41:20

标签: java pdf accessibility pdfbox

需要根据可访问性准则检查PDF标签是否具有属性。 例子:

  • H1-验证PDF中是否存在H1
  • 图片(图标记)-验证图片\图是否有替代文字
  • 语言-验证是否设置了语言属性,以便屏幕阅读器可以正确阅读。对于西班牙语和英语文档,应更新相应的语言代码
  • 表-访问表对象并验证表结构是否正确(标题列与行列匹配等)

到目前为止,我能够:

  • 通过PDDocument.getDocumentInformation().getMetadataKeys();
  • 提取元数据并验证文档是否具有正确的标题,主题和生产者信息。
  • 通过检查PDDocument.getDocumentCatalog().getMarkInfo().isMarked();标志来验证是否可访问PDF

要访问标签,我尝试了以下选项:

  • getDocumentCatalog().getAcroForm()返回Null
  • PDDocument.getDocumentCatalog().getPages().get(0).getAnnotations();返回Null
  • 我尝试遍历PDDocument.getDocumentCatalog().getStructureTreeRoot().getKids(),但是它只返回1个StructElem类型的对象

可访问PDF的创建是使用OpenText完成的,因此开发团队不了解PDFBox。 我在这里迷失了如何访问标签/对象(使用MarkedContent或其他方法)。

请建议如何提取单个对象(标签),例如P,H1,表格,图形/图像并验证其属性。 注意:这些属性的手动验证是使用Adobe Acrobat Pro

进行的

1 个答案:

答案 0 :(得分:1)

基于https://issues.apache.org/jira/browse/PDFBOX-7,看来您可以使用PDFMarkedContentExtractor来获取所需的信息。