PDF辅助功能|使用XSL-FO

时间:2019-03-18 21:16:11

标签: pdf pdf-generation xsl-fo apache-fop

我正在使用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>
            ...

我想念什么?

1 个答案:

答案 0 :(得分:1)

我通过在“ 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的帮助。