Поддержка iText для хинди и арабского

Наш проект нуждается в динамическом создании PDF на 6 языках, который состоит из хинди и арабского языка. iText прекрасно работает для других языков, кроме этих двух. Может кто-нибудь сообщить мне, если текущая версия iText(5.5.5) имеет лигатурную реализацию для хинди и арабского языка?

1 ответ

об арабском языке: я так понимаю, вы сталкиваетесь с одной из двух проблем:

  • арабские слова не появляются.
  • арабские слова появляются как:

решение:

  • сначала: обновите itext 5.5.8 до реализации itext 7:

https://search.maven.org/artifact/com.itextpdf/itext7-core/7.2.2/pom

  • затем отредактируйте свой код:
      String font = "your Arabic font";
PdfFontFactory.register(font);
FontProgram fontProgram = FontProgramFactory.createFont(font, true);
PdfFont f = PdfFontFactory.createFont(fontProgram, PdfEncodings.IDENTITY_H);
LanguageProcessor languageProcessor = new ArabicLigaturizer();
com.itextpdf.kernel.pdf.PdfDocument tempPdfDoc = new 
com.itextpdf.kernel.pdf.PdfDocument(new PdfReader(pdfFile.getPath()), TempWriter);
com.itextpdf.layout.Document TempDoc = new 
com.itextpdf.layout.Document(tempPdfDoc);
com.itextpdf.layout.element.Paragraph paragraph0 = new 
com.itextpdf.layout.element.Paragraph(languageProcessor.process("الاستماره الالكترونية"))
            .setFont(f).setBaseDirection(BaseDirection.RIGHT_TO_LEFT)
            .setFontSize(15);

// и посмотрите, как я использовал setBaseDirection & и не используйте TextAlignment, он будет работать без него

Другие вопросы по тегам