Пожалуйста ознакомьтесь с документацией, особое внимание уделите разделу
iText7: строительные блоки "Глава 1: Знакомство с .... Из этой главы вы узнаете, что используя iText7, намного проще переключать шрифты, потому как вы можете работать со стандартными шрифтами и их размерами, вы можете определять и повторно использовать
Style
объекты и т.д.
Пример:
PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
normal.setFont(font).setFontSize(14);
Style code = new Style();
PdfFont monospace = PdfFontFactory.createFont(FontConstants.COURIER);
code.setFont(monospace).setFontColor(Color.RED)
.setBackgroundColor(Color.LIGHT_GRAY);
Paragraph p = new Paragraph();
p.add(new Text("The Strange Case of ").addStyle(normal));
p.add(new Text("Dr. Jekyll").addStyle(code));
p.add(new Text(" and ").addStyle(normal));
p.add(new Text("Mr. Hyde").addStyle(code));
p.add(new Text(".").addStyle(normal));
document.add(p);
для начала мы определим
Style
, назовем его
normal
и укажем для него шрифт Times-Roman размером в 14pt. После этого мы определим
Style
, который назовем
code
и зададим ему шрифт красного цвета Courier, размером в 12pt с серым фоном. После этого мы создадим
Paragraph
, с помощью
Text
объектов, которые задействуют эти стили.
Обратите внимание, что вы можете цеплять
add()
комментарии, как это сделано в следующем примере:
Text title1 = new Text("The Strange Case of ").setFontSize(12);
Text title2 = new Text("Dr. Jekyll and Mr. Hyde").setFontSize(16);
Text author = new Text("Robert Louis Stevenson");
Paragraph p = new Paragraph().setFontSize(8)
.add(title1).add(title2).add(" by ").add(author);
document.add(p);
«Установим размер шрифта для только что созданного
Paragraph
в 8pt. Этот размер шрифта будет наследоваться всеми объектами, добавленными в
Paragraph
, если только объекты не переопределяют этот размер по умолчанию. Это относится к
title1
, для которого мы определили размер шрифта в 12pt и для
title2
, для которого мы определили размер шрифта в 16pt. Содержимое, добавленное как
String
(
" by "
), и содержимое, добавленное как
Text
объект, для которого не был определен размер шрифта, наследует размер шрифта в 8pt из
Paragraph
, в который они добавлены.»
Это выдержка из официального руководства, и я надеюсь этого будет достаточно для StackOverflow, где ответы в виде одной только ссылки не приветствуются. Однако, я считаю, что это правило не должно приводить к копипасту целой главы мануала.