带有iTextSharp RTL的阿拉伯文字

时间:2020-05-22 16:32:31

标签: c# itext pdf-generation arabic

我有以下情况和问题,请问您的意见和帮助。 在公司中,我们有一个生成PDF的应用程序,并且我们正在为此目的使用iTextSharp。到目前为止,我们仅使用拉丁字母,但是现在我们还必须升级该应用程序以使用阿拉伯字母。 生成器在json文件中获取输入,并且它已经包含正确格式的正确阿拉伯文本(我的意思是从右到左格式) ColumnText组件(来自iTextSharp)获取将所需部分“绘制”到PDF模板所需的一切,这是为什么保留给定文本的唯一问题。 (因此它将正确的RTL格式转换为LTR)。使用拉丁文字,它可以正常工作,完全不会转换。 我尝试设置RunDirection属性,但是没有一个选项能提供理想的结果。

这些将文本转换为RTL,但是错过了原始文本的一些字母(我不知道为什么)

  • RUN_DIRECTION_RTL

  • RUN_DIRECTION_LTR

  • RUN_DIRECTION_DEFAULT

示例: 我想要的是:ليسهذاتصريحصعودللطائرة

我得到的是:ليسهذتصريحصعوللطائر(粗体字母丢失)

如果我用那个(RUN_DIRECTION_NO_BIDI)表示所有字母都可以,但是不幸的是文本是LTR。

我在传递给iTextSharp之前反转了文本,然后又将其反转了,所以最终在PDF上就可以了,但是我们有这样的阿拉伯文本,中间带有拉丁词,在这种情况下,手动反向不会这是没有帮助的,因为iTextSharp仅转换阿拉伯文本。因此,“字符串操纵”导致混乱。

我如何才能使iTextSharp完全不修改给定的阿拉伯文本,而仅将其呈现为给定的PDF模板? 我已经读到该软件包已过时,因此正式鼓励升级最新的iText7。它将解决我的问题吗?

感谢您的回答。

0 个答案:

没有答案