Перевірте підтримку латинських символів для шрифтів TrueType або Type1 у C#

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

У цій статті будуть розглянуті такі теми:

  1. API C# для визначення підтримки латинських символів у шрифтах
  2. Виявлення латинських символів у шрифтах TrueType за допомогою C#
  3. Виявлення латинських символів у шрифтах Type1 за допомогою C#

C# API для виявлення підтримки латинських символів у шрифтах

Для визначення підтримки латинських символів у шрифтах ми будемо використовувати API Aspose.Font for .NET. Він дозволяє завантажувати, зберігати та видобувати інформацію з підтримуваних типів шрифтів. Завантажте DLL API або встановіть його за допомогою NuGet.

PM> Install-Package Aspose.Font

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

Ми можемо виявити латинські символи у шрифтах TrueType, виконавши наведені нижче дії.

  1. По-перше, завантажте файл шрифту за допомогою класу FontFileDefinition.
  2. Потім ініціалізуйте об’єкт класу FontDefinition за допомогою FontType(TTF) і об’єкта FontFileDefinition як аргументи.
  3. Потім викличте метод Font.Open() з об’єктом FontDefinition як аргументом та ініціалізуйте об’єкт класу TtfFont.
  4. Після цього перегляньте різні коди та розшифруйте їх у Гліф ідентифікатори.
  5. Нарешті перевірте ідентифікатори гліфів на підтримку латинських символів.

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

// Цей приклад коду демонструє, як визначити, чи підтримує певний шрифт TrueType латинські символи чи ні.
// Шлях до файлу TTF
string fontPath = @"D:\Files\font\Montserrat-Regular.ttf";

// Завантажте файл шрифту
FontFileDefinition fontFileDefinition = new FontFileDefinition("ttf", new FileSystemStreamSource(fontPath));

// Об’єкт визначення шрифту
FontDefinition fd = new FontDefinition(FontType.TTF, fontFileDefinition);

// Відкрийте шрифт
TtfFont font = (TtfFont)Font.Open(fd);

var latinText = true;

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

if (latinText)
{
    Console.WriteLine("Font {0} supports latin symbols.", font.FontName);
}
else
{
    Console.WriteLine("Latin symbols are not supported by font {0}.", font.FontName);
}

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

Ми також можемо виявити латинські символи у шрифтах Type1, виконавши наведені нижче дії:

  1. По-перше, завантажте файл шрифту за допомогою класу FontFileDefinition.
  2. Далі ініціалізуйте об’єкт класу FontDefinition за допомогою FontType(Type1) і об’єкта FontFileDefinition як аргументи.
  3. Потім викличте метод Font.Open() з об’єктом FontDefinition як аргументом та ініціалізуйте об’єкт класу Type1Font.
  4. Після цього перегляньте різні коди та розшифруйте їх у ідентифікатори Гліф.
  5. Нарешті перевірте ідентифікатори гліфів на підтримку латинських символів.

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

// Цей приклад коду демонструє, як визначити, чи підтримує певний шрифт Type1 латинські символи чи ні.
// Шлях до файлу шрифту Type1
string fontPath = @"D:\Files\font\courier.pfb";

// Завантажте файл шрифту
FontFileDefinition fontFileDefinition = new FontFileDefinition("pfb", new FileSystemStreamSource(fontPath));

// Об’єкт визначення шрифту
FontDefinition fd = new FontDefinition(FontType.Type1, fontFileDefinition);

// Відкрийте шрифт
Type1Font font = (Type1Font)Font.Open(fd);

var latinText = true;

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

if (latinText)
{
    Console.WriteLine("Font {0} supports latin symbols.", font.FontName);
}
else
{
    Console.WriteLine("Latin symbols are not supported by font {0}.", font.FontName);
}

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

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

Висновок

У цій статті ми дізналися, як визначити, чи підтримує певний шрифт TrueType або Type1 латинські символи в C#. Крім того, ви можете дізнатися більше про Aspose.Font for .NET API за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на форумі.

Дивись також