我有一个iTextSharp的问题,看起来它可能是一个错误。
我有一个梳理文本字段,当使用iTextSharp向其添加阿拉伯文字时,当字段“突出显示”时,阿拉伯字母最初显示为反转。所以'فادي'出现'يداف'。 当我点击该字段时,突出显示消失,文本以正确的方向显示 无论方向和对齐如何,都会发生这种情况,并且仅在精梳文本字段中发生。
任何人都可以提供任何解决方案吗?
注意:我也添加了iText标签,因为我预感此问题不仅仅针对iTextSharp,我希望我能在iTextSharp中复制任何变通方法或解决方案。的问候,
答案 0 :(得分:1)
您通常可以通过在表单对象上将GenerateAppearances
设置为false
来解决此问题。
PDF中的注释(表单字段是其中的一个版本)可以具有不同的“状态”,对于每个“状态”,您可以指定渲染器如何显示该状态。例如,复选框可以被“检查”或“未检查”,但是如何呈现该实际的复选标记则不是。也许是“X”,也许是✓,也许是☑或者可能是完全不同的东西。这些不同的州称为外观状态。
如果不为注释设置外观状态,那么您实际上已将该状态的控制权移交给PDF呈现器并让它做任何想做的事情。
Adobe的渲染器(Acrobat和Reader)是PDF渲染器的事实上的标准,而最近的渲染器实际上非常擅长“填补空白”,特别是在涉及RTL和许多非英语/拉丁语的东西时。其他渲染器,包括谷歌,苹果,微软甚至你的打印机可能都不如此,所以你可能想测试一下。