По умолчанию
FontProgramFactory (FontFactory в iText 5) знает только шрифты типа 1, а шрифт
"garamond bold" не входит в этот список, поэтому используется Helvetica (Helvetica — шрифт по умолчанию в iText).
Можно «научить»
FontProgramFactory, как находить другие шрифты, зарегистрировав их. Можно попробовать следующее:
FontProgramFactory.registerSystemFontDirectories();
Но это очень затратная операция, так как здесь iText ищет в вашей операционной системе файлы шрифтов в разных каталогах (например, в
C:/Windows/Fonts). Это может занять несколько секунд, и на выходе получится намного больше шрифтов, чем необходимо (возможно, что нужный шрифт так и не будет зарегистрирован).
Лучше регистрировать шрифты следующим образом.
FontProgramFactory.registerFont("c:/windows/fonts/garabd.ttf", "garamond bold");
Мы сообщаем iText, где найти файл .ttf (
"c:/windows/fonts/garabd.ttf") и определяем псевдоним для нужного шрифта («garamond bold»). Теперь, когда название шрифта зарегистрировано, его можно использовать:
PdfFont myBoldFont = PdfFontFactory.createRegisteredFont("garamond bold");