Прежде всего, в
BaseFont baseFont = BaseFont.CreateFont(@"C:\Windows\Fonts\Calibri.ttf", "Identity-H", BaseFont.EMBEDDED);
вы загружаете файл шрифта для обычного Calibri.Если вы извлекаете Font
из этого BaseFont
, он использует обычный файл шрифта Calibri, независимо от того, какие атрибуты стиля вы установили.Это, в частности, означает, что
- «жирный» стиль реализуется путем не только заполнения нормального контура глифа, но и штрихования линии вдоль него (вариант так называемого «жирного шрифта бедняка») и
- стиль "курсив" реализован путем применения матрицы преобразования, которая немного искажается.
Вы получаете более качественные и полужирные и курсивные вариации, загружая полужирный или курсив Calibri
BaseFont baseFontBold = BaseFont.CreateFont(@"C:\Windows\Fonts\Calibrib.ttf", "Identity-H", BaseFont.EMBEDDED);
BaseFont baseFontItalic = BaseFont.CreateFont(@"C:\Windows\Fonts\Calibrii.ttf", "Identity-H", BaseFont.EMBEDDED);
BaseFont baseFontBoldItalic = BaseFont.CreateFont(@"C:\Windows\Fonts\Calibriz.ttf", "Identity-H", BaseFont.EMBEDDED);
и вывод Font
со стилем "нормальный" из соответствия BaseFont
.
Как уже было сказано, теперь ваш главный вопрос:
Я знаю, что могу сделать:
font1.SetStyle("bold");
font1.SetStyle("italic");
но как насчет обоих?И, возможно, также подчеркните ...
Для оба вы можете просто сделать, как вы написали
font1.SetStyle("bold");
font1.SetStyle("italic");
, то есть установить оба последовательно, потому что SetStyle(String)
на самом делеработает больше как AddStyle
.В качестве альтернативы, однако, вы также можете сделать
font1.SetStyle("bold italic");
Если вам нужно сбросить набор выбранных стилей на нормальный, вы можете использовать SetStyle(int)
, который действительно работает так, как установщик должен:
font1.SetStyle(0);
И, возможно, также подчеркивание ...
String
Константы для доступных стилей
- "normal"
- «полужирный»
- «курсив»
- «наклонный»
- «подчеркивание»
- «прямой переход»