По умолчанию
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");