Символ латинского символа — это символ в виде метки, знака или слова. Шрифт определяет, как знаки/символы должны отображаться в цифровом виде или в печатной форме с использованием набора свойств. Файл шрифта содержит дизайн и другую информацию о шрифте. В некоторых случаях нам может потребоваться проверить, поддерживает ли какой-либо конкретный шрифт латинские символы или нет. В этой статье мы узнаем, как проверить поддержку латинских символов для шрифтов TrueType или Type1 в C#.
В этой статье должны быть раскрыты следующие темы:
- API C# для обнаружения поддержки латинских символов в шрифтах
- Обнаружение латинских символов в шрифтах TrueType с помощью C#
- Обнаружение латинских символов в шрифтах Type1 с помощью C#
C# API для обнаружения поддержки латинских символов в шрифтах
Для обнаружения поддержки латинских символов в шрифтах мы будем использовать API Aspose.Font for .NET. Он позволяет загружать, сохранять и извлекать информацию из поддерживаемых типов шрифтов. Пожалуйста, загрузите DLL API или установите его с помощью NuGet.
PM> Install-Package Aspose.Font
Обнаружение латинских символов в шрифтах TrueType с помощью C#
Мы можем обнаружить латинские символы в шрифтах TrueType, выполнив следующие действия:
- Во-первых, загрузите файл шрифта с помощью класса FontFileDefinition.
- Затем инициализируйте объект класса FontDefinition с FontType (TTF) и объектом FontFileDefinition в качестве аргументов.
- Затем вызовите метод Font.Open() с объектом FontDefinition в качестве аргумента и инициализируйте объект класса TtfFont.
- После этого прокрутите различные коды и декодируйте их в идентификаторы Glyph.
- Наконец, проверьте идентификаторы глифов на предмет поддержки латинских символов.
В следующем примере кода показано, как определить, поддерживает ли конкретный шрифт 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, выполнив следующие шаги:
- Во-первых, загрузите файл шрифта с помощью класса FontFileDefinition.
- Затем инициализируйте объект класса FontDefinition с FontType (Type1) и объектом FontFileDefinition в качестве аргументов.
- Затем вызовите метод Font.Open() с объектом FontDefinition в качестве аргумента и инициализируйте объект класса Type1Font.
- После этого прокрутите различные коды и декодируйте их в идентификаторы Glyph.
- Наконец, проверьте идентификаторы глифов на предмет поддержки латинских символов.
В следующем примере кода показано, как определить, поддерживает ли конкретный шрифт 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, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.