Пользовательские шрифты:
Это объясняется во многих различных учебниках по iText 7:
Пример:
предположим, что у вас есть программа для шрифтов дляшрифт Cardo Regular:
public static final String REGULAR =
"src/main/resources/fonts/Cardo-Regular.ttf";
С помощью этой программы для шрифтов вы можете создать FontProgram
объект следующим образом:
FontProgram fontProgram =
FontProgramFactory.createFont(REGULAR);
С помощью этого FontProgram
объекта вы можете создать PdfFont
:
PdfFont font = PdfFontFactory.createFont(
fontProgram, PdfEncodings.WINANSI, true);
Теперь вы можете использовать этот объект PdfFont
для изменения шрифта абзаца:
p.setFont(font);
Это только один способ использовать пользовательский шрифт;Вы найдете другие способы в уроках.Конечно, вы понимаете, что нет смысла копировать учебник в ответ переполнения стека.
Пользовательские цвета
В iText 7 есть класс Color
: http://itextsupport.com/apidocs/iText7/latest/com/itextpdf/kernel/colors/Color.html
Этот класс имеет несколько подклассов: CalGray
, CalRgb
, DeviceCmyk
, DeviceGray
, DeviceN
, DeviceRgb
, IccBased
, Indexed
, Lab
, PatternColor
, Separation
.
Вы можете создать собственный цвет, выбрав один из этих подклассов, в зависимости от цветового пространства, в котором вы работаете. Например: предположим, что вы хотите использовать цвет устройства RGB, тогда вы будете использоватькласс DeviceRgb
.
Пример:
Предположим, что вам нужен цвет RGB со значениями красный = 0,2, зеленый = 0,2, синий = 0,2, затем выбудет использовать этот конструктор: http://itextsupport.com/apidocs/iText7/latest/com/itextpdf/kernel/colors/DeviceRgb.html#DeviceRgb-float-float-float-
Color color = new ColorRgb(0.2f, 0.2f, 0.2f);
Это только один пример.ISO 32000-2 даст вам больше информации о различиях между цветовыми пространствами (необходимыми для выбора правильного цветового класса), а документация API объяснит, как работают разные конструкторы.