我使用Apache FOP 2.1生成PDF文件。
为此,我试图将默认语言设置为英语 这应该在通过Adobe Reader的选项文件/属性/高级/阅读选项创建PDF后进行验证。该值目前为空。
我已尝试在xml:lang="en"
元素中设置fo:root
,在第一页序列中或在.xsl
文件的第一个元素中设置{没有任何接缝来执行此操作。
任何建议?
谢谢迪米特里斯。
更新
我已经尝试了另外两个选项,如答案中所建议的,两个都没有工作
<fo:declarations>
<pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
<pdf:string key="Lang">en</pdf:string>
</pdf:catalog>
<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>the document title</dc:title>
<dc:language>en</dc:language>
更新2
已经开始对这个问题给予赏金。
任何帮助赞赏和报复
答案 0 :(得分:1)
您可能需要设置language
(http://www.w3.org/TR/xsl/#language)。请参阅&#39;语言&#39;在http://xmlgraphics.apache.org/fop/compliance.html
您认为xml:lang
会起作用,但您说它不会。 FOP常见问题解答有关于设置language
来控制连字符的答案,因此即使将language
定义为仅适用于fo:block
和fo:character
,也值得一试。
您可能需要启用可访问的PDF。请参阅https://xmlgraphics.apache.org/fop/2.1/accessibility.html,其中引用了PDF中设置的语言(包括来自xml:lang
)。
答案 1 :(得分:1)
根据我尝试的所有内容,adobe reader显示的文档属性中的语言字段与pdf中实际找到的文档语言没什么关系(它总是空的)。
带有FOP 2.1的fo:root中的xml:lang =“en”标签足以让exiftool将文档列为具有英语语言,并且PDFfbbox中的PDFDebugger也可以在文档目录中显示/ Lang条目是根据pdf_reference 1.7表3.25“目录词典中的条目”指定语言的位置。
代码
<fo:declarations>
<pdf:catalog
xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
<pdf:string key="Lang">en</pdf:string>
</pdf:catalog>
在pdf输出中与xml:lang完全相同。
另外,您还可以在元数据中设置语言(也在fo:declarations
内)
<x:xmpmeta
xmlns:x="adobe:ns:meta/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:RDF>
<rdf:Description rdf:about="">
<dc:language><rdf:Bag><rdf:li>en</rdf:li></rdf:Bag></dc:language>
但是如果xml:lang存在的话,我的fop 2.1似乎设置得太自动了。
如果有人能够解释哪些人能够解释adobe reader中的文档语言属性实际显示的内容,那将会很有趣。