Шрифти — це набір друкованих або відображуваних символів із різними стилями, щільністю тощо. Вони використовуються для додання іншого вигляду документам або веб-сторінкам відповідно до різних вимог. Файли шрифтів містять дизайн та іншу інформацію про шрифт. У цій статті ми використаємо файли шрифтів, щоб програмно визначити, чи підтримує шрифт латинські символи чи ні.

Java API для виявлення латинських символів у шрифтах TrueType і Type1

Aspose.Font for Java – це бібліотека для роботи з такими шрифтами, як TrueType, CFF, Type1 тощо. API підтримує завантаження, збереження та отримання інформації про шрифти. API також дозволяє виявити підтримку латинських символів у шрифтах. Ви можете завантажити API за допомогою Maven або завантажити JAR із розділу завантажень.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-font</artifactId>
    <version>21.4</version>
</dependency>

Виявлення латинських символів у шрифтах TrueType за допомогою Java

Нижче наведено кроки, щоб визначити, чи підтримує певний шрифт TrueType латинські символи чи ні.

  • Створіть екземпляр класу FontDefinition за допомогою файлу шрифту.
  • Створіть екземпляр класу TtfFont за допомогою об’єкта FontDefinition, створеного на попередньому кроці.
  • Перегляньте різні коди та розшифруйте їх у ідентифікатори гліфів.
  • Перевірте ідентифікатори гліфів на підтримку латинських символів.

У наступному прикладі коду показано, як визначити, чи підтримує певний шрифт TrueType латинські символи чи ні.

// Шлях до файлу шрифту
String fileName = Utils.getDataDir() + "Montserrat-Regular.ttf"; //Font file name with full path

// Завантажте файл шрифту
FontDefinition fd = new FontDefinition(FontType.TTF, new FontFileDefinition("ttf", new FileSystemStreamSource(fileName)));
TtfFont ttfFont = (TtfFont) Font.open(fd);

boolean latinText = true;

// Перевірте підтримку латинських символів
for (int code = 65; code < 123; code++)
{
    GlyphId gid = ttfFont.getEncoding().decodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.getNotDef())
    {
        latinText = false;
    }
}

if (latinText)
{
    System.out.println(MessageFormat.format("Font {0} supports latin symbols.", ttfFont.getFontName()));
}
else
{
    System.out.println(MessageFormat.format("Latin symbols are not supported by font {0}.", ttfFont.getFontName()));
}

Виявлення латинських символів у шрифтах Type1 за допомогою Java

Процес виявлення підтримки латинських символів у шрифтах Type1 подібний до шрифтів TrueType. Єдина відмінність полягає в тому, що ми будемо використовувати клас Type1Font для доступу до інформації про шрифт. Нижче наведено кроки для визначення підтримки латинських символів у шрифтах Type1.

  • Створіть екземпляр класу FontDefinition за допомогою файлу шрифту.
  • Створіть екземпляр класу Type1Font за допомогою об’єкта FontDefinition, створеного на попередньому кроці.
  • Перегляньте різні коди та розшифруйте їх у ідентифікатори гліфів.
  • Перевірте ідентифікатори гліфів на підтримку латинських символів.

У наступному прикладі коду показано, як визначити, чи підтримує певний шрифт Type1 латинські символи чи ні.

// Шлях до файлу шрифту
String fileName = Utils.getDataDir() + "courier.pfb"; //Font file name with full path

// Завантажте файл шрифту
FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
Type1Font font = (Type1Font) Font.open(fd);

boolean latinText = true;

// Перевірте підтримку латинських символів
for (int code = 65; code < 123; code++)
{
    GlyphId gid = font.getEncoding().decodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.getNotDef())
    {
        latinText = false;
    }
}

if (latinText)
{
    System.out.println(MessageFormat.format("Font {0} supports latin symbols.", font.getFontName()));
}
else
{
    System.out.println(MessageFormat.format("Latin symbols are not supported by font {0}.", font.getFontName()));
}

Отримайте безкоштовну ліцензію

Щоб спробувати API без оціночних обмежень, ви можете подати запит на безкоштовну тимчасову ліцензію.

Висновок

У цій статті ви дізналися, як визначити підтримку латинських символів у шрифтах за допомогою Java. Спільні зразки коду дозволяють визначити, чи підтримує певний шрифт латинські символи чи ні. Aspose.Font for Java надає багато додаткових функцій для роботи зі шрифтами, які ви можете детально вивчити, відвідавши офіційну документацію. У разі будь-яких запитань зв’яжіться з нами на нашому безкоштовному форумі підтримки.

Дивись також