问题描述
我正在尝试使用其主题名称为阿拉伯语的证书对 PDF 文件进行签名。签名外观未正确显示文本,文本方向应为 RTL。例如,它显示的不是“عربي”而是“ي ب ر ع”
PdfFont fontTest = PdfFontFactory.CreateFont(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts),"Tahoma.ttf"),PdfEncodings.IDENTITY_H,true);
PdfString pdfString = new PdfString("Digitally signed by\n " + cert.IssuedTo + "\n Date:" + DateTime.Now);
PdfSignatureAppearance appearance = signer.GetSignatureAppearance();
appearance.SetReuseAppearance(false)
.SetPageRect(rect)
.SetPageNumber(pageNmber)
.SetLayer2Font(fontTest)
.SetLayer2Text(pdfString.ToString())
.SetRenderingMode(PdfSignatureAppearance.RenderingMode.NAME_AND_DESCRIPTION) ;
解决方法
在 iText 7 中,有一个单独的附加组件可以促进复杂的脚本支持。要在 iText 7 中启用对 complex scripts 的支持,请使用 iText pdfCalligraph 插件