Zkontrolujte podporu latinských symbolů pro písma TrueType nebo Type1 v C#

Latinský znakový symbol je znak ve formě značky, znaku nebo slova. Písmo definuje, jak mají být znaky/symboly zobrazeny digitálně nebo v tisknutelné podobě pomocí sady vlastností. Soubor písma obsahuje návrh a další informace týkající se písma. V určitých případech možná budeme muset zkontrolovat, zda nějaké konkrétní písmo podporuje latinské symboly či nikoli. V tomto článku se naučíme, jak zkontrolovat podporu latinských symbolů pro písma TrueType nebo Type1 v C#.

Tento článek bude obsahovat následující témata:

  1. C# API pro detekci podpory latinských symbolů ve fontech
  2. Detekce latinských symbolů ve písmech TrueType pomocí C#
  3. Detekce latinských symbolů ve písmech Type1 pomocí C#

C# API pro detekci podpory latinských symbolů ve fontech

Pro zjišťování podpory latinských symbolů ve fontech budeme používat API Aspose.Font for .NET. Umožňuje načítání, ukládání a extrahování informací z podporované typy písem. Prosím buď stáhněte DLL API, nebo ji nainstalujte pomocí NuGet.

PM> Install-Package Aspose.Font

Detekce latinských symbolů ve písmech TrueType pomocí C#

Symboly latinky v písmech TrueType můžeme detekovat podle následujících kroků:

  1. Nejprve načtěte soubor písma pomocí třídy FontFileDefinition.
  2. Dále inicializujte objekt třídy FontDefinition s FontType(TTF) a objektem FontFileDefinition jako argumenty.
  3. Potom zavolejte metodu Font.Open() s objektem FontDefinition jako argumentem a inicializujte objekt třídy TtfFont.
  4. Poté projděte různé kódy a dekódujte je do Glyph ID.
  5. Nakonec zkontrolujte ID glyfů pro podporu latinských symbolů.

Následující ukázka kódu ukazuje, jak zjistit, zda konkrétní písmo TrueType podporuje latinské symboly nebo ne v C#.

// Tento příklad kódu ukazuje, jak zjistit, zda konkrétní písmo TrueType podporuje latinské symboly či nikoli.
// Cesta k souboru TTF
string fontPath = @"D:\Files\font\Montserrat-Regular.ttf";

// Načtěte soubor písma
FontFileDefinition fontFileDefinition = new FontFileDefinition("ttf", new FileSystemStreamSource(fontPath));

// Objekt definice písma
FontDefinition fd = new FontDefinition(FontType.TTF, fontFileDefinition);

// Otevřete písmo
TtfFont font = (TtfFont)Font.Open(fd);

var latinText = true;

// Zkontrolujte podporu latinských symbolů
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);
}

Detekce latinských symbolů ve písmech Type1 pomocí C#

Latinské symboly můžeme také detekovat ve fontech Type1 podle následujících kroků:

  1. Nejprve načtěte soubor písma pomocí třídy FontFileDefinition.
  2. Dále inicializujte objekt třídy FontDefinition s FontType(Type1) a objektem FontFileDefinition jako argumenty.
  3. Potom zavolejte metodu Font.Open() s objektem FontDefinition jako argumentem a inicializujte objekt třídy Type1Font.
  4. Poté procházejte různé kódy a dekódujte je do Glyph ID.
  5. Nakonec zkontrolujte ID glyfů pro podporu latinských symbolů.

Následující ukázka kódu ukazuje, jak zjistit, zda určité písmo Type1 podporuje latinské symboly nebo ne v C#.

// Tento příklad kódu ukazuje, jak zjistit, zda konkrétní písmo Type1 podporuje latinské symboly nebo ne.
// Cesta k souboru písma Type1
string fontPath = @"D:\Files\font\courier.pfb";

// Načtěte soubor písma
FontFileDefinition fontFileDefinition = new FontFileDefinition("pfb", new FileSystemStreamSource(fontPath));

// Objekt definice písma
FontDefinition fd = new FontDefinition(FontType.Type1, fontFileDefinition);

// Otevřete písmo
Type1Font font = (Type1Font)Font.Open(fd);

var latinText = true;

// Zkontrolujte podporu latinských symbolů
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);
}

Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci a vyzkoušet knihovnu bez omezení hodnocení.

Závěr

V tomto článku jsme se naučili, jak zjistit, zda nějaké konkrétní písmo TrueType nebo Type1 podporuje latinské symboly nebo ne v C#. Kromě toho se můžete dozvědět více o Aspose.Font for .NET API pomocí dokumentace. V případě jakýchkoliv nejasností nás neváhejte kontaktovat na fóru.

Viz také