iTextSharp 在填充组合文本字段时反转阿拉伯文本

iTextSharp reverses Arabic text when filling combed text field

我在使用 iTextSharp 时遇到问题,这看起来可能是一个错误。

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

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

注意:我也添加了 iText 标签,因为我有预感这个问题不仅仅针对 iTextSharp,我希望我可以复制任何解决方法或解决方案在 iTextSharp 中。此致,

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

PDF 中的注释(表单字段是其一个版本)可以有不同的 "states",对于其中的每一个 "states",您可以指定您希望渲染器如何显示该状态。例如,复选框可以是给定的 "checked" 或 "not checked",但是如何呈现实际的复选标记不是。也许是 "X",也许是 ✓,也许是 ☑ 或完全不同的东西。这些不同的状态被称为它们的外观状态。

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

A​​dobe 的渲染器(Acrobat 和 Reader)是 PDF 渲染器的事实标准,最近的渲染器实际上非常擅长 "filling in the blanks",尤其是涉及到 RTL 和许多 non-English/Latin 东西。然而,其他渲染器,包括 Google、Apple 的、Microsoft 的,甚至您的打印机可能都不擅长此操作,因此您可能想要测试一下。