1

我对 iTextSharp 有疑问,这看起来可能是一个错误。

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

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

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

4

1 回答 1

1

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

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

如果您没有为注释设置外观状态,那么您实际上就是将该状态的控制权交给了 PDF 渲染器,并让它为所欲为。

Adobe 的渲染器(Acrobat 和 Reader)是 PDF 渲染器的事实上的标准,而最近的渲染器实际上非常擅长“填补​​空白”,尤其是在涉及 RTL 和许多非英语/拉丁语的东西时。但是,其他渲染器,包括 Google、Apple、Microsoft 甚至您的打印机可能在这方面表现不佳,因此您可能需要对此进行测试。

于 2015-10-13T15:00:09.933 回答