Греческие символы в PDF с iText 7

Я пытаюсь создать PDF-файл с греческими символами, используя iText 7 для Java. В PDF видны только латинские буквы и цифры.

Я загружаю шрифты, используя этот код:

PdfFont normalFont = PdfFontFactory.createFont(FontConstants.HELVETICA, "CP1253");

Что я должен делать?


person mike_x_    schedule 21.11.2016    source источник
comment
Вы вставили шрифт? Передайте значение true в методе PdfFontFactory#createFont() после всех остальных аргументов. Кроме того, не забудьте использовать свой шрифт при создании текста :)   -  person Samuel Huylebroeck    schedule 21.11.2016
comment
можешь опубликовать пример?   -  person mike_x_    schedule 21.11.2016
comment
Вы используете Helvetica, не встраивая ее. Helvetica является одним из 14 стандартных форматов, которые должен знать каждый пользователь PDF, но только с ограниченным набором символов, в основном латинскими. Попробуйте использовать шрифт с греческими символами, который у вас есть в виде файла шрифта и вы имеете право использовать его для встраивания.   -  person mkl    schedule 21.11.2016
comment
@mike_x_ что сказал mkl (не могу поверить, что просмотрел настоящий шрифт ›.›), давайте посмотрим, developers.itextpdf.com/content/itext-7-building-blocks/, это java, но соответствующие методы должны быть одинаковыми, за исключением некоторых заглавных букв. и заменив get/set свойством   -  person Samuel Huylebroeck    schedule 21.11.2016


Ответы (1)


Это решение:

PdfFont normalFont = PdfFontFactory.createFont("C:\\Windows\\Fonts\\arial.ttf", "Identity-H", true);

Вы можете использовать любой шрифт, который поддерживает ваш язык. Также Identity-H кажется важным как кодировка файла PDF.

person mike_x_    schedule 21.11.2016
comment
работает, и вы даже можете использовать Font ce_langs_support_font = FontFactory.getFont(Font.FontFamily.TIMES_ROMAN.name(), Identity-H, true); так что вы избавлены от боли путей и используете шрифт Times Roman, встроенный в iText. Ключевым здесь является кодировка Identity-H. - person Rahul Saini; 08.03.2019