Kontrollera stöd för latinska symboler för TrueType- eller Type1-teckensnitt i C#

En latinsk teckensymbol är ett tecken i form av ett märke, tecken eller ord. Teckensnitt definierar hur tecknen/symbolerna ska visas digitalt eller i utskrivbar form med hjälp av en uppsättning egenskaper. Teckensnittsfilen innehåller designen och annan information om typsnittet. I vissa fall kan vi behöva kontrollera om något specifikt teckensnitt stöder latinska symboler eller inte. I den här artikeln kommer vi att lära oss hur du kontrollerar latinska symbolers stöd för TrueType eller Type1-teckensnitt i C#.

Följande ämnen ska behandlas i den här artikeln:

  1. C# API för att upptäcka stöd för latinska symboler i teckensnitt
  2. Detektera latinska symboler i TrueType-teckensnitt med C#
  3. Detektera latinska symboler i Type1-teckensnitt med C#

C# API för att upptäcka stöd för latinska symboler i teckensnitt

För att upptäcka stöd för latinska symboler i teckensnitt kommer vi att använda API:et Aspose.Font for .NET. Det tillåter att ladda, spara och extrahera information från typsnittstyper som stöds. Vänligen antingen ladda ner API:ts DLL eller installera den med NuGet.

PM> Install-Package Aspose.Font

Upptäck latinska symboler i TrueType-teckensnitt med C#

Vi kan upptäcka latinska symboler i TrueType-teckensnitten genom att följa stegen nedan:

  1. Först laddar du teckensnittsfilen med klassen FontFileDefinition.
  2. Initiera sedan klassobjektet FontDefinition med FontType(TTF) och FontFileDefinition-objektet som argument.
  3. Anropa sedan metoden Font.Open() med FontDefinition-objektet som argument och initiera klassobjektet TtfFont.
  4. Efter det, gå igenom de olika koderna och avkoda dem till Glyph ID:n.
  5. Slutligen, kontrollera glyf-ID:n för stöd för latinska symboler.

Följande kodexempel visar hur man upptäcker om ett visst TrueType-teckensnitt stöder latinska symboler eller inte i C#.

// Det här kodexemplet visar hur man upptäcker om ett visst TrueType-teckensnitt stöder latinska symboler eller inte.
// TTF-filsökväg
string fontPath = @"D:\Files\font\Montserrat-Regular.ttf";

// Ladda teckensnittsfilen
FontFileDefinition fontFileDefinition = new FontFileDefinition("ttf", new FileSystemStreamSource(fontPath));

// Teckensnittsdefinitionsobjekt
FontDefinition fd = new FontDefinition(FontType.TTF, fontFileDefinition);

// Öppna teckensnittet
TtfFont font = (TtfFont)Font.Open(fd);

var latinText = true;

// Kontrollera om det finns stöd för latinska symboler
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);
}

Upptäck latinska symboler i Type1-teckensnitt med C#

Vi kan också upptäcka latinska symboler i Type1-teckensnitten genom att följa stegen nedan:

  1. Först laddar du teckensnittsfilen med klassen FontFileDefinition.
  2. Initiera sedan klassobjektet FontDefinition med FontType(Type1) och FontFileDefinition-objektet som argument.
  3. Anropa sedan metoden Font.Open() med FontDefinition-objektet som argument och initiera klassobjektet Type1Font.
  4. Efter det, gå igenom de olika koderna och avkoda dem till Glyph ID:n.
  5. Slutligen, kontrollera glyf-ID:n för stöd för latinska symboler.

Följande kodexempel visar hur man upptäcker om ett visst typsnitt av typ 1 stöder latinska symboler eller inte i C#.

// Det här kodexemplet visar hur man upptäcker om ett visst typsnitt av typ 1 stöder latinska symboler eller inte.
// Typ1 teckensnittsfilsökväg
string fontPath = @"D:\Files\font\courier.pfb";

// Ladda teckensnittsfilen
FontFileDefinition fontFileDefinition = new FontFileDefinition("pfb", new FileSystemStreamSource(fontPath));

// Teckensnittsdefinitionsobjekt
FontDefinition fd = new FontDefinition(FontType.Type1, fontFileDefinition);

// Öppna teckensnittet
Type1Font font = (Type1Font)Font.Open(fd);

var latinText = true;

// Kontrollera om det finns stöd för latinska symboler
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);
}

Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har vi lärt oss hur man avgör om något visst TrueType- eller Type1-teckensnitt stöder latinska symboler eller inte i C#. Dessutom kan du lära dig mer om Aspose.Font för .NET API med hjälp av dokumentationen. I händelse av oklarheter, var god kontakta oss på forumet.

Se även