小编Gur*_*mus的帖子

如何使用可以使用PAC 2工具验证的Java PDFBox 2.0.8库创建可访问的PDF?

背景

我在GitHub上有一个小项目,我正在尝试创建一个符合508条款(section508.gov)的PDF,它在复杂的表结构中有表单元素.建议验证这些PDF的工具位于http://www.access-for-all.ch/en/pdf-lab/pdf-accessibility-checker-pac.html,我的程序输出PDF确实通过了大部分检查.我还将了解每个字段在运行时的含义,因此向结构元素添加标记应该不是问题.

问题

PAC 2工具似乎在输出PDF中存在两个特定项目的问题.特别是,我的单选按钮的窗口小部件注释不嵌套在表单结构元素内,并且我的标记内容没有标记(文本和表格单元格).PAC 2验证左上角单元格内的P 结构元素,但不验证标记内容 ...

但是,PAC 2确实将标记的内容标识为错误(即未标记的文本/路径对象).此外,检测单选按钮小部件,但似乎没有API将它们添加到表单结构元素.

我曾经尝试过什么

我已经看过这个网站上的几个问题以及其他关于这个主题的问题,包括这个带有PDFBox的Tagged PDF,但似乎几乎没有PDF/UA的例子和很少有用的文档(我发现).我发现的最有用的提示是在解释标记PDF的规范的网站上,如https://taggedpdf.com/508-pdf-help-center/object-not-tagged/.

问题

是否可以使用包含标记内容和单选按钮窗口小部件注释的Apache PDFBox创建PAC 2可验证PDF?如果可能,是否可以使用更高级别(不推荐)的PDFBox API?

旁注:这实际上是我的第一个StackExchange问​​题(虽然我已广泛使用该网站),我希望一切顺利!随意添加任何必要的编辑,并询问我可能需要澄清的任何问题.另外,我在GitHub上有一个示例程序,它在https://github.com/chris271/UAPDFBox上生成我的PDF文档.

编辑1:直接链接到输出PDF文档

*编辑2:使用一些较低级别的PDFBox的API,并查看原始数据流与PDFDebugger完全兼容PDF文件后,我就能够产生一个几乎相同的内容结构PDF相比,该标准目录的内容结构.不过,相同的错误显示文本对象没有标记,我真的无法决定从这里去哪里...任何指导将不胜感激!

编辑3: 并排原始PDF内容比较.

编辑4:生成的PDF的内部结构

生成PDF

和兼容的PDF

兼容的PDF

编辑5:我已经成功修复了标记路径/文本对象的PAC 2错误,这部分得益于Tilman Hausherr的建议!如果我设法解决有关"注释小部件没有嵌套在表单结构元素中"的问题,我将添加一个答案.

java pdf accessibility section508 pdfbox

10
推荐指数
1
解决办法
1674
查看次数

标签 统计

accessibility ×1

java ×1

pdf ×1

pdfbox ×1

section508 ×1