Как правильно добавить арабский текст в поле акроформы в ITEXT 7/9 (.NET), чтобы он оставался правильным после сглаживанC#

Место общения программистов C#
Ответить
Anonymous
 Как правильно добавить арабский текст в поле акроформы в ITEXT 7/9 (.NET), чтобы он оставался правильным после сглаживан

Сообщение Anonymous »

Я работаю с ITEXT 9.3.0 для .NET и должен заполнить поле формы PDF (PDFTextFormfield) с арабским текстом, а затем выравниваю его, чтобы текст стал постоянным. < /p>
Однако, когда я устанавливал арабский текст напрямую, буквы, не подходящие (не соединенные) после того, что вместо правильного съемного арабского арабского. Версия моего кода: < /p>
using var inputStream = new MemoryStream(templateBytes);
using var outputStream = new MemoryStream();

using var pdfReader = new iText.Kernel.Pdf.PdfReader(inputStream);
using var pdfWriter = new PdfWriter(outputStream);
using var pdfDoc = new iText.Kernel.Pdf.PdfDocument(pdfReader, pdfWriter);

var form = PdfAcroForm.GetAcroForm(pdfDoc, true);
using var layoutDoc = new Document(pdfDoc);

var field = form.GetField("arabicField");

try
{
if (IsArabicText(value.Value))
{
var fontFile = Path.Combine(_fontsDir, "Almarai-Regular.ttf");
//PdfFont pdfFont = PdfFontFactory.CreateFont(fontFile, PdfEncodings.IDENTITY_H, EmbeddingStrategy.FORCE_EMBEDDED);

// Set Arabic value
field.SetValue(value.Value);

// Align right for RTL
field.SetJustification(2); // right aligned

// Regenerate field appearance
}
else
{
field.SetValue(value.Value);
}

field.RegenerateField();
}
catch (Exception ex)
{
_logger.LogWarning(ex, "Failed to set text for field {FieldId}", value.Id);
}

form.FlattenFields();
layoutDoc.Close();
< /code>
** Что я попробовал
**
внедрить арабский шрифт (например, almarai, noto naskh arabic). < /p>
Установка поля. Setjustification (2) для правого выравнивания. < /p>
Calling Field. Form.SetNeDAppeArances (true).
Появляется текст, но арабские буквы не соединены и не появляются как отдельные глифы, когда -то сплющенные.
Что я хочу
Арабский текст, как «Выписываемое» и «Общая цена» и «Общая цена» и «Общая цена) Поле сплюснутой формы.
В идеале это должно работать так же, как статический арабский текст работает при добавлении через документ.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -net-so-it
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»