Как добавить новые шрифты в Itext с помощью java

когда я хочу использовать шрифт iText, я делаю следующее:

protected final static Font FONT_SIZE_11_BOLD = new Font(Font.HELVETICA, 11f, Font.BOLD); 

и тогда я могу использовать его везде, где хочу, следующим образом:

 monthSize11 = new Chunk(month, FONT_SIZE_11_BOLD); 

Я хочу использовать Arial вместо HELVETICA, но Arial напрямую не доступен. Я имею в виду, я не могу

 new Font(Font.ARIAL, 11f, Font.BOLD); 

потому что Arial не определен в classе Font, но файл Arial.ttf находится в моей системе в папке C: \ WINDOWS \ Fonts. Вопрос в том, как я могу привязать файл Arial.ttf к iText и как его использовать.

Много thnaks заранее.

EDIT: Я хотел бы использовать собственные шрифты. Я имею в виду, у меня есть файл под названием «myCompany.ttf», где были определены собственные шрифты и в некоторых местах я должен использовать. Проблема заключается не только в Arial.

 BaseFont base = BaseFont.createFont("c:/windows/fonts/arial.ttf", BaseFont.WINANSI); Font font = new Font(base, 11f, Font.BOLD); .... 

Подробнее читайте здесь .

Загрузите его из JAR с помощью ведущей косой черты; в противном случае используйте абсолютный путь вашего шрифта ( C:\...\fonts\Sansation_Regular.ttf ). Например:

 Font font = FontFactory.getFont("/fonts/Sansation_Regular.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 0.8f, Font.NORMAL, BaseColor.BLACK); BaseFont baseFont = font.getBaseFont(); 
  • Относительный путь шрифта: ‘src / main / resources / fonts’
  • Использование Itext 5.4.5
  • Пример кода

Используйте BaseFont.createFont для создания нового объекта Font.

Вы можете передать любой шрифт Type1 или TTF. Вам просто нужно будет обеспечить, чтобы ваш файл шрифта распределялся вместе. Обратитесь к API BaseFont

Создание пользовательских шрифтов с использованием itext просто

Я написал код для того же ниже

Обязательно поможет кому-то

 public class CustomFontStyle { public static void main(String[] args) { // creation of the document with a certain size and certain margins // may want to use PageSize.LETTER instead Document document = new Document(PageSize.A4, 50, 50, 50, 50); try { // creation of the different writers PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("CustomFontsStyle.pdf")); final String NEWLINE = "\n"; document.open(); Phrase phrase = new Phrase(); BaseFont baseFont3 = BaseFont.createFont("Xenotron.ttf", BaseFont.WINANSI, BaseFont.NOT_EMBEDDED); Font font2 = new Font(baseFont3, 12); document.add(new Paragraph("Custom Xenotron Font: ", font2)); phrase.add(NEWLINE); document.add(phrase); document.close(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } } 
  • Приведение компонента к BufferedImage приводит к повреждению отображения
  • JButton ActionListener - обновление GUI только после нажатия JButton
  • Как проверить, существует ли URL-адрес или возвращает 404 с Java?
  • Почему JAVA foreach не меняет значение элемента?
  • Объясните, почему инжектор конструктора лучше, чем другие параметры
  • Сканер NoSuchElementException
  • Какова цель использования менеджеров макетов Java?
  • Как проверить файл XML с помощью Java с XSD с включенным?
  • Где я могу найти стандартную реализацию карты на основе Trie в Java?
  • Перемещение элементов в ArrayList
  • Как установить кодировку запроса в Tomcat?
  • Давайте будем гением компьютера.