Это метод внутри моего Resources.class:Создание шрифтов из * .ttf файлов с помощью IText
public static Font loadFont(String fontFileName)
{
BaseFont base = null;
try
{
base = BaseFont.createFont(Resource.class.getResource(fontFileName + "_font.ttf").toString(), BaseFont.WINANSI, true);
}
catch (DocumentException | IOException e)
{
e.printStackTrace();
}
Font font = new Font(base, Font.BOLD, 15);
return font;
}
Структура моей программы является:
src (folder)
core (package)
//all (but one) classes used for program
resources (package)
class Resources (used to load resources into the "core" classes)
wingding_font.ttf
Это фрагмент кода, который не работают:
p = new Phrase("some random text");
p.setFont(Resource.loadFont("wingding"));
pa = new Paragraph(p);
pa.setFont(Resource.loadFont("wingding"));
document.add(pa);
Когда я открываю PDF, текст есть, но некоторые шрифты, который я предполагаю, шрифт по умолчанию используются.
Note1: Я попытался установить шрифт только для фразы (p) и только для абзаца (pa), но никак не изменил результат.
Note2: Resource.loadFont ("крыло"); методы try/catch не «ловят» любые ошибки.
Вы не можете создавать шрифт каждый раз. –