Я испытываю что-то странное, когда пишу текст с именами с помощью ITextSharp - я пишу какой-то текст, а именно «حبیب الله ځاځی»
Я пытаюсь записать эту строку в PDF, используя ITextSharp 5.5.13, используя следующий код:
var fp = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), “arial.ttf”);
var bf = BaseFont.CreateFont(fp, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
... ..
IList<AcroFields.FieldPosition> fieldPositions = frm.GetFieldPositions(fieldName);
AcroFields.FieldPosition fieldPosition = fieldPositions[0];
iTextSharp.text.Rectangle rec1 = fieldPosition.position;
var sizef = ColumnText.FitText(new Font(bf), ourstring, rec1, font_size, PdfWriter.RUN_DIRECTION_RTL);
Phrase px = new Phrase();
Chunk chunk = new Chunk(ourstring, new Font(bf, sizef));
px.Add(chunk);
ColumnText.ShowTextAligned(stamper.GetOverContent(i), Element.ALIGN_RIGHT,
px, rec1.Right, rec1.Bottom - bf.GetDescentPoint(ourstring, sizef), 0, PdfWriter.RUN_DIRECTION_RTL,ColumnText.AR_LIG);
...
Во время отладки я подтвердил, что имя отправляется правильно
Но когда я открываю получившийся документ - текст отображается неправильно, как показано ниже
Когда я открываю этот файл в Adobe Acrobat Pro с целью редактирования - я вижу, что назначенный шрифт правильный, т. Е. Arial
Если я изменю его на другой шрифт, а затем вернусь к Arial - текст будет отображаться правильно, как и должно быть
Я пробовал различные комбинации арабских опций ColumnText.AR_XXX и ничего не меняется
Кто-нибудь имеет представление о том, что здесь происходит?