Как узнать, какой буквы нет в шрифте? - PullRequest
0 голосов
/ 29 ноября 2018

Если я сделаю это:

PdfFont font = PdfFontFactory.createFont(font_without_a, PdfEncodings.IDENTITY_H, true);
System.out.println("font_without_a " + font.getWidth("a",17));

Вывод: font_without_a 5.848

Шрифт не имеет буквы "a"

шрифт: enter image description here

https://dropmefiles.com/8lFiM

С примером буквы a, это может быть любой символ

1 Ответ

0 голосов
/ 30 ноября 2018

Как узнать, какой буквы нет в шрифте?

Вы можете проверить, есть ли у шрифта глиф для данного символа, используя метод containsGlyph.Однако этот метод не пытается определить, соответствуют ли инструкции рисования для этого символа в шрифте тому или иному символу.

Программа шрифтов ArtScript.ttf, которой вы поделились , делает содержат глиф для буквы «а», хотя этот глиф не содержит инструкций для рисования.Таким образом, PdfFont правильно выводит true при запросе

System.out.println(font.containsGlyph('a'));

Я фактически удалил этот глиф из вашей программы шрифтов здесь .Для этого шрифта эта строка кода выводит false.

В комментарии вы сказали

Я понимаю, что даже если нет буквы, есть пустая область с границами,но можно ли как-то определить эту область как пустую или нет?

Используя редактор шрифтов, вы можете фактически удалить глиф, например, в FontForge, используя "cut" или "detach and remove glyphs" какЯ сделал выше.

...