Как использовать пользовательские цвета и пользовательские шрифты в Itext7 - PullRequest
0 голосов
/ 17 сентября 2018

Я использую IText7 для генерации PDF из HTML-строки. Теперь у меня есть требования применять пользовательские цвета и пользовательские шрифты или семейства шрифтов к абзацам.

Как это можно сделать с помощью Itext7?

Спасибо

1 Ответ

0 голосов
/ 17 сентября 2018

Пользовательские шрифты:

Это объясняется во многих различных учебниках по 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 объяснит, как работают разные конструкторы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...