Sprawdź obsługę symboli łacińskich dla czcionek TrueType lub Type1 w języku C#

Symbol znaku łacińskiego to znak w postaci znaku, znaku lub słowa. Czcionka określa, w jaki sposób znaki/symbole mają być wyświetlane cyfrowo lub w formie do druku przy użyciu zestawu właściwości. Plik czcionki zawiera projekt i inne informacje dotyczące czcionki. W niektórych przypadkach może być konieczne sprawdzenie, czy dana czcionka obsługuje symbole łacińskie, czy nie. W tym artykule dowiemy się, jak sprawdzić obsługę symboli łacińskich dla czcionek TrueType lub Type1 w języku C#.

W tym artykule zostaną omówione następujące tematy:

  1. C# API do wykrywania obsługi symboli łacińskich w czcionkach
  2. Wykrywanie symboli łacińskich w czcionkach TrueType przy użyciu języka C#
  3. Wykryj symbole łacińskie w czcionkach Type1 za pomocą C#

Interfejs API języka C# do wykrywania obsługi symboli łacińskich w czcionkach

Do wykrywania obsługi symboli łacińskich w czcionkach będziemy używać API Aspose.Font for .NET. Umożliwia ładowanie, zapisywanie i wyodrębnianie informacji z obsługiwanych typów czcionek. Pobierz bibliotekę DLL interfejsu API lub zainstaluj ją za pomocą NuGet.

PM> Install-Package Aspose.Font

Wykryj symbole łacińskie w czcionkach TrueType za pomocą C#

Możemy wykryć symbole łacińskie w czcionkach TrueType, wykonując poniższe czynności:

  1. Najpierw załaduj plik czcionki przy użyciu klasy FontFileDefinition.
  2. Następnie zainicjuj obiekt klasy FontDefinition z obiektami FontType (TTF) i FontFileDefinition jako argumentami.
  3. Następnie wywołaj metodę Font.Open() z obiektem FontDefinition jako argumentem i zainicjuj obiekt klasy TtfFont.
  4. Następnie przejrzyj różne kody i zdekoduj je na identyfikatory Glyph.
  5. Na koniec sprawdź identyfikatory glifów pod kątem obsługi symboli łacińskich.

Poniższy przykładowy kod pokazuje, jak wykryć, czy określona czcionka TrueType obsługuje symbole łacińskie, czy nie w języku C#.

// Ten przykład kodu pokazuje, jak wykryć, czy dana czcionka TrueType obsługuje symbole łacińskie, czy nie.
// Ścieżka do pliku TTF
string fontPath = @"D:\Files\font\Montserrat-Regular.ttf";

// Załaduj plik czcionki
FontFileDefinition fontFileDefinition = new FontFileDefinition("ttf", new FileSystemStreamSource(fontPath));

// Obiekt definicji czcionki
FontDefinition fd = new FontDefinition(FontType.TTF, fontFileDefinition);

// Otwórz czcionkę
TtfFont font = (TtfFont)Font.Open(fd);

var latinText = true;

// Sprawdź obsługę symboli łacińskich
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);
}

Wykryj symbole łacińskie w czcionkach Type1 za pomocą C#

Możemy również wykryć symbole łacińskie w czcionkach Type1, wykonując poniższe czynności:

  1. Najpierw załaduj plik czcionki przy użyciu klasy FontFileDefinition.
  2. Następnie zainicjuj obiekt klasy FontDefinition z obiektami FontType (Type1) i FontFileDefinition jako argumentami.
  3. Następnie wywołaj metodę Font.Open() z obiektem FontDefinition jako argumentem i zainicjuj obiekt klasy Type1Font.
  4. Następnie przejrzyj różne kody i zdekoduj je na identyfikatory Glyph.
  5. Na koniec sprawdź identyfikatory glifów pod kątem obsługi symboli łacińskich.

Poniższy przykładowy kod pokazuje, jak wykryć, czy określona czcionka Type1 obsługuje symbole łacińskie, czy nie w języku C#.

// Ten przykład kodu pokazuje, jak wykryć, czy dana czcionka Type1 obsługuje symbole łacińskie, czy nie.
// Ścieżka pliku czcionki Type1
string fontPath = @"D:\Files\font\courier.pfb";

// Załaduj plik czcionki
FontFileDefinition fontFileDefinition = new FontFileDefinition("pfb", new FileSystemStreamSource(fontPath));

// Obiekt definicji czcionki
FontDefinition fd = new FontDefinition(FontType.Type1, fontFileDefinition);

// Otwórz czcionkę
Type1Font font = (Type1Font)Font.Open(fd);

var latinText = true;

// Sprawdź obsługę symboli łacińskich
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);
}

Uzyskaj bezpłatną licencję

Możesz uzyskać bezpłatną tymczasową licencję, aby wypróbować bibliotekę bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule dowiedzieliśmy się, jak określić, czy dana czcionka TrueType lub Type1 obsługuje symbole łacińskie w języku C#. Poza tym możesz dowiedzieć się więcej o Aspose.Font for .NET API korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.

Zobacz też