FOP apache - 支持希伯来语字母

时间:2013-09-15 22:35:50

标签: java pdf xsl-fo apache-fop

我在最近几天一直在调查FOP apache中希伯来字母的支持 生成PDF文件的项目。

我看到过去有一个问题,我真的不明白它是否已经解决了?

如果有支持,有人可以显示/重定向我的简单样本给我带有希伯来字母的XSL-FO文件,当使用FOP时,PDF会正确生成(清晰且不会被订单字母反转)。

我真的很感激你的回答。这件事真的让我感到困扰,因为这个问题我想转移到IText ......

1 个答案:

答案 0 :(得分:4)

您在寻找什么样的样品?对我来说很好......

 <fo:list-item><fo:list-item-label end-indent="label-end()"><fo:block>Hebrew</fo:block></fo:list-     item-label>
 <fo:list-item-body start-indent="body-start()"><fo:block xml:lang="he"><fo:bidi-override    
 unicode-bidi="embed" direction="rtl">כאשר העולם רוצה לדבר, הוא מדבר ב־Unicode</fo:bidi-
 override></fo:block></fo:list-item-body></fo:list-item>

如果您使用双向覆盖和方向,它可以正常工作。我在RenderX,Antennahouse和Apache FOP中对此进行了测试,结果是一样的。

顶部图片是Antennahouse,中间RenderX和底部Apache FOP。

根据下面的问题,使用方向rtl和bidi-override是因为句子包含混合英语和希伯来语。如果你只有希伯来语,它应该正确格式化。三种方式都可以通过FOP查看此图像。中间版本不正确,因为它需要这些属性。

以下是此示例的完整示例:

    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:layout-master-set>
    <fo:simple-page-master master-name="PageMaster" margin="25mm" page-width="8.5in" page-height="11in" >
    <fo:region-body margin="10mm"/>
    <fo:region-before extent="6mm" display-align="center"/>
    <fo:region-after extent="6mm" display-align="center"/>
    </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="PageMaster">
    <fo:flow flow-name="xsl-region-body" line-height="1.7" font-family="Arial Unicode MS">
    <fo:block>Mixed English and Hebrew with Override</fo:block>
    <fo:block xml:lang="he"><fo:bidi-override unicode-bidi="embed" direction="rtl">כאשר העולם רוצה לדבר, הוא מדבר ב־Unicode</fo:bidi-override></fo:block>
    <fo:block>Mixed English and Hebrew no Override</fo:block>
    <fo:block>כאשר העולם רוצה לדבר, הוא מדבר ב־Unicode</fo:block>
    <fo:block>Hebrew only no Override</fo:block>
    <fo:block>כאשר העולם רוצה לדבר, הוא מדבר ב־</fo:block>    
    </fo:flow>
    </fo:page-sequence>
    </fo:root>

FOP showing different ways you can render

All three major FO renderers