Использование iText7 для создания шрифта "Courier_new" - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь создать шрифт Courier new в C# с помощью пакета iText7. Я могу найти Courier только среди стандартных шрифтов, но я бы хотел использовать Courier new. Мой код выглядит следующим образом:

PdfFont courier = PdfFontFactory.CreateFont(StandardFonts.COURIER, false);

Как я могу создавать собственные шрифты с iText7?

1 Ответ

1 голос
/ 27 марта 2020

Набор стандартных шрифтов зафиксирован в спецификации PDF и состоит из 14 шрифтов. Кроме того, внешний вид этих шрифтов в средствах просмотра PDF может зависеть от реализации и, таким образом, отличаться от средства просмотра к средству просмотра (хотя на практике вы почти не видите разницы).

Чтобы использовать собственный шрифт, вы будете нужен файл шрифта (обычно файл .ttf или .otf). Например, обычный (не полужирный, не итальянский c) Courier New шрифт, поставляемый с Windows, обычно находится по адресу C:/Windows/Fonts/cour.ttf (пожалуйста, уточните в лицензиях Windows Fonts, разрешено ли вам его использовать).

Также следует указать кодировку для метода, создающего шрифт. Если вы не укажете кодировку, ваши латинские символы будут преобразованы просто отлично, но для более широкого диапазона символов Юникода вы должны предоставить кодировку IDENTITY_H.

Пример:

PdfFont font = PdfFontFactory.createFont("C:/Windows/Fonts/cour.ttf", PdfEncodings.IDENTITY_H);
...