itext 5 TextField с использованием китайского шрифта с жирным шрифтом и курсивом - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь использовать TextField в itext 5. Мое имя шрифта "微軟 正 黑ustoms" в английском языке sh - "Microsoft JhengHei". Я хочу использовать этот шрифт с полужирным шрифтом и itati c.

Начальный шрифт (3 - Font.BOLD | Font.ITALI C, а B C - мой основной цвет)

Font fontZh = FontFactory.getFont(CurrentFont.getFontName(), BaseFont.IDENTITY_H, BaseFont.EMBEDDED,
                    CurrentFont.getFontSize(), 3, BC);

У меня есть переменная textField и я установил fontZh на setFont.

field.setFont(fontZh.getBaseFont());

В pdf-файле указаны только стиль, размер и цвет шрифта. Но смелый и итати c не работает.

1 Ответ

0 голосов
/ 07 апреля 2020

Вы можете установить только BaseFont для поля. Это, в частности, означает, что те свойства из вашего FontFactory.getFont вызова, которые просто становятся частью возвращенного Font, а не базового BaseFont, не находятся в базовом шрифте, который вы получаете с помощью fontZh.getBaseFont(), и, следовательно, не являются установить в поле.

Среди свойств, которые теряются таким образом, в частности, информация о стиле, такая как itali c или полужирный (если файл шрифта, на который есть ссылка, уже is it c или полужирный, или указанное семейство шрифтов зарегистрировано шрифтовым или itali c файлом шрифта) и цветом.

(вы говорите, что в вашем тесте цвет является правильным ; если это так, то это не из-за его переноса через шрифт. Поскольку вы не показываете достаточно кода для хорошего анализа, я могу только догадываться; я бы предположил, что цвет либо является значением по умолчанию для начала или установите его с помощью другой инструкции.)

Таким образом, если вы хотите, чтобы в текстовом поле использовался шрифт полужирный или itali c, вы должны использовать базовый шрифт, который р выдает файл шрифта, который уже содержит aws символов в желаемой комбинации жирного и итальянского c, например, в случае Century Gothi c используйте GOTHICBI.TTF вместо GOTHIC.TTF. Я не знаю, есть ли у вас такой вариант «微軟 正 黑ustoms».

Если вы хотите установить цвет шрифта поля, вы можете сделать это, установив его в поле, т.е.

field.setTextColor(BC);

перед построением словаря полей с помощью field.getTextField().

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