填写精梳文本字段时,iTextSharp会反转阿拉伯语文本

时间:2015-10-10 23:10:03

标签: pdf itextsharp itext arabic-support

我有一个iTextSharp的问题,看起来它可能是一个错误。

我有一个梳理文本字段,当使用iTextSharp向其添加阿拉伯文字时,当字段“突出显示”时,阿拉伯字母最初显示为反转。所以'فادي'出现'يداف'。 当我点击该字段时,突出显示消失,文本以正确的方向显示 无论方向和对齐如何,都会发生这种情况,并且仅在精梳文本字段中发生。

任何人都可以提供任何解决方案吗?

注意:我也添加了iText标签,因为我预感此问题不仅仅针对iTextSharp,我希望我能在iTextSharp中复制任何变通方法或解决方案。的问候,

1 个答案:

答案 0 :(得分:1)

您通常可以通过在表单对象上将GenerateAppearances设置为false来解决此问题。

PDF中的注释(表单字段是其中的一个版本)可以具有不同的“状态”,对于每个“状态”,您可以指定渲染器如何显示该状态。例如,复选框可以被“检查”或“未检查”,但是如何呈现该实际的复选标记则不是。也许是“X”,也许是✓,也许是☑或者可能是完全不同的东西。这些不同的州称为外观状态。

如果为注释设置外观状态,那么您实际上已将该状态的控制权移交给PDF呈现器并让它做任何想做的事情。

Adobe的渲染器(Acrobat和Reader)是PDF渲染器的事实上的标准,而最近的渲染器实际上非常擅长“填补​​空白”,特别是在涉及RTL和许多非英语/拉丁语的东西时。其他渲染器,包括谷歌,苹果,微软甚至你的打印机可能都不如此,所以你可能想测试一下。