【问题标题】:PDFBox - Accessible PDF - How to check if PDF Tags have properties as per Accessiblity guidelinesPDFBox - 可访问的 PDF - 如何根据可访问性指南检查 PDF 标签是否具有属性
【发布时间】:2019-05-25 16:03:07
【问题描述】:

需要检查 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、表格、图形/图像并验证它们的属性。 注意:这些属性的手动验证是使用 Adob​​e Acrobat Pro 执行的

【问题讨论】:

  • 请分享一个包含这些标签的 PDF 并 ping 我。你要搜索的是结构树,也可以用PDFDebugger查看。
  • @TilmanHausherr 感谢您的回复。不幸的是,我无法共享我必须验证的 PDF。这是示例 PDF。在下面的 PDF 中,我需要验证 Fox 和 dog 图像是否具有正确的替代文本。 gitlab.itextsupport.com/itext7/samples/raw/develop/publications/… 在下面的 PDF 中,我需要验证表结构是否正确。就像它有 TH、TBody 标签一样。每个 TD 都被映射。 gitlab.itextsupport.com/itext7/samples/raw/develop/publications/…
  • 我看了看……这比我想象的要棘手,抱歉。如果你用 PDFDebugger 查看它,你就会明白为什么 :-(
  • 没问题,感谢您的检查。之前没用过PDFDebugger,来看看吧。
  • @SachingG 你有这方面的线索吗?另外,PDDocument.getDocumentCatalog().getStructureTreeRoot().getKids() but its returning only 1 StructElem type object 你有没有找到一种方法来迭代这个StrucElem

标签: java pdf accessibility pdfbox


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-14
    • 2018-12-28
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多