FlyingSaucer LTR / RTL / BiDi问题与阿拉伯语文本

时间:2011-06-09 05:54:12

标签: java pdf arabic bidi xhtmlrenderer

我正在使用飞碟xhtmlrenderer来构建pdf文档。到目前为止一切正常 - 现在我们应该在pdf中生成阿拉伯语文本。 Xhtmlrenderer以相反的顺序呈现阿拉伯语文本。

我在网上(可能在他们自己的网站上)读过xhtmlrenderer不支持bidi / rtl的地方。 但IText本身包含通过ColumnText和PdfPTable使用阿拉伯语和希伯来语的示例(可在此处找到源代码:http://sourceforge.net/projects/itextpdf/files/Examples/examples-155/examples-155.zip/download - arabic_hebrew.java),这些工作正常。

我尝试在xhtmlrenderer的ReplacedElementFactory / ITextReplacedElement中使用itext api,但找不到定位元素的好例子。 有没有人试过这样做?或者可能有一个更简单(或至少是工作)的解决方案?

2 个答案:

答案 0 :(得分:2)

最后,我能够使用飞碟在rtl / ltr中打印阿拉伯语文本。 在我的代码中,我为每个阿拉伯语文本块提供宽度和对齐方式,但总的来说它工作正常。 代码很大,可以在这里打印出来,所以询问是否有人感兴趣

答案 1 :(得分:1)

我面临同样的问题,只有我能找到的解决方案是使用arial字体 在项目的resources文件夹中导入/添加arial.ttf和arialbold.ttf文件。

html, body {
 margin: 0;
 padding: 0;
 font-family: Arial, Arial Bold;
 font-size: 10px;
 line-height: 14px;
}

使用

var actual = avroSerializer.Deserialize(buffer);