我正在使用Apache FO从XML创建PDF文件。当我使用Acrobat Reader Pro DC(版本2019.010.20098)对生成的PDF运行辅助功能检查时,可访问性报告指示“标题 - 失败”。
当我在Acrobat(文件 - >属性 - >描述选项卡)中查看文档的元数据时,我可以看到标题,作者和主题值都填充了我的FO样式表中定义的值(见下文)。
如果我转到文件 - >属性 - >初始视图(选项卡) - >“窗口选项”(部分)并在显示中选择“文档标题”,然后重新运行标题通过的辅助功能检查。
这个问题与this previous question提出的问题相同。
根据上一个问题的答案,这个问题应该在FOP 2.2中得到解决。但是,我已经尝试使用FOP 2.2以及FOP 2.3,这个问题对我来说仍然存在。我目前正在运行FOP 2.3,截至本文撰写的是当前版本。
我需要设置一些FOP值或属性,以使Acrobat默认在初始视图中显示文档标题而不是文件名吗?
这是我的XSL的相关片段:
...
</fo:layout-master-set>
<fo:declarations>
<x:xmpmeta xmlns:x="adobe:ns:meta/">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:title>DOCUMENT TITLE</dc:title>
<dc:creator>COMPANY NAME</dc:creator>
<dc:description>DOCUMENT DESCRIPTION</dc:description>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
</fo:declarations>
<fo:bookmark-tree>
...
我错过了什么?
我通过将以下代码段添加到我的“fo:declaration”部分来解决此问题:
<fo:declarations>
<pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
<!-- this will replace the window title from filename to below dc:title -->
<pdf:dictionary type="normal" key="ViewerPreferences">
<pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
</pdf:dictionary>
</pdf:catalog>
<x:xmpmeta xmlns:x="adobe:ns:meta/">
我在this question学到了这种方法。
谢谢@TonyGraham的帮助。