【问题标题】:FOP apache - support Hebrew lettersFOP apache - 支持希伯来字母
【发布时间】:2013-09-15 22:35:49
【问题描述】:

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

以前看到有问题,不明白解决没?

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

非常感谢您的回答。这件事真的很困扰我,因此我想搬到 IText...

【问题讨论】:

    标签: java pdf xsl-fo apache-fop


    【解决方案1】:

    您要寻找什么样的样品?适合我...

     <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。

    根据您在下面的问题,使用direction 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>
    

    【讨论】:

    • 你用的是witch FOP版本吗?
    • 在我的情况下,数据参数是未知的,它可能是英语/希伯来语。我该如何处理这种情况?
    • 我没能成功,你能给我完整的文件吗?
    • 我添加了带有示例输出和注释的完整示例,请参阅答案。
    • 请注意,真正的 答案是使用 fo:bidi-override ,就像在原始示例中所做的那样。原因是如果句子是混合内容,或者全英语或全希伯来语,答案将是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2011-05-22
    • 2019-06-21
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多