使用ApacheFop0.95在pdf中从左到右显示阿拉伯语文本

使用ApacheFop0.95在pdf中从左到右显示阿拉伯语文本,pdf,xslt,apache-fop,Pdf,Xslt,Apache Fop,我们使用apache的xsl fo引擎即fop 0.95生成pdf。我们已经成功地将阿拉伯语文本从xml显示为pdf。但是在显示单词的方向上存在一些问题 如果我们有xml格式的“sangam”(请假设“sangam”是阿拉伯语),它将显示为“magnas”。以前有人遇到过这种情况吗?解决办法是什么 例如,我在xml文件中有一个节点,如下所示: <empltmoblab>موبایل</empltmoblab> لیابوم 这意味着我得到的正好相反。我希望它在xml节

我们使用apache的xsl fo引擎即fop 0.95生成pdf。我们已经成功地将阿拉伯语文本从xml显示为pdf。但是在显示单词的方向上存在一些问题

如果我们有xml格式的“sangam”(请假设“sangam”是阿拉伯语),它将显示为“magnas”。以前有人遇到过这种情况吗?解决办法是什么

例如,我在xml文件中有一个节点,如下所示:

<empltmoblab>موبایل</empltmoblab>
لیابوم
这意味着我得到的正好相反。我希望它在xml节点中保持原样


谢谢。

我认为这是一个有趣的问题。使用bidi(双向属性)到rtl(从右到左)可以解决这个问题,但不幸的是fop仍然不支持它。 如果有人能找到解决办法,那就太好了

我发现,在fop中,我们不能在它应该的时候呈现阿拉伯文文本

唯一的解决办法是生成RTF文档来代替PDF文档。在RTF文档中,阿拉伯文本显示为XML文件中的文本。您可以尝试使用RTF代替PDF吗?这对我很有效

谢谢。

试着用这个:

    <fo:block-container writing-mode="rl-tb" font-family="ArabicTransparent" language="fa">
        <fo:block>
            علی‌ کریمی (Farsi-right-to-left)
        </fo:block>
    </fo:block-container> 

علی‌ (波斯语从右到左)

不清楚您是否认为文字方向的反转是不可取的。我们知道阿拉伯语是从右到左显示的。如果你能发布一些例子,也许会有所帮助。@pavium,你说阿拉伯语是从右到左显示的。我不知道我现在的问题是不是真正的问题。fop不应该显示xml中的文本吗@斯科特,我加了一个example@Thunder,您是对的-如果fop中支持bidi Overide属性,那么问题就可以解决。但是我们现在还没有。@Thunder:看来FOP1.1现在支持bidi了。尽管如此,他们还是列出了FOP-959、FOP-1790和FOP-1827作为参考。在我的测试中,它现在工作正常。抱歉,但是将write mode=“rl tb”放入fo:blockcontainer会以一种扭曲的方式失败。它产生从右到左的像素书写,而不是字符!这是使用fop-1.0生成希伯来文文本的杀手。(阿拉伯人和犹太人都无法通过fop-1.0以PDF格式输出文本。)