Verifica il supporto dei simboli latini per i caratteri TrueType o Type1 in C#

Un simbolo di carattere latino è un carattere sotto forma di segno, segno o parola. Il carattere definisce come i caratteri/simboli devono essere visualizzati digitalmente o in forma stampabile utilizzando un insieme di proprietà. Il file del carattere contiene il design e altre informazioni relative al carattere. In alcuni casi, potrebbe essere necessario verificare se un font specifico supporta i simboli latini o meno. In questo articolo impareremo come controllare il supporto dei simboli latini per i caratteri TrueType o Type1 in C#.

In questo articolo verranno trattati i seguenti argomenti:

  1. API C# per rilevare il supporto dei simboli latini nei caratteri
  2. Rileva i simboli latini nei caratteri TrueType usando C#
  3. Rileva i simboli latini nei caratteri Type1 usando C#

API C# per rilevare il supporto dei simboli latini nei caratteri

Per rilevare il supporto dei simboli latini nei caratteri, utilizzeremo l’API Aspose.Font for .NET. Consente di caricare, salvare ed estrarre informazioni da tipi di font supportati. Si prega di scaricare la DLL dell’API o installarla utilizzando NuGet.

PM> Install-Package Aspose.Font

Rileva i simboli latini nei caratteri TrueType usando C#

Possiamo rilevare i simboli latini nei caratteri TrueType seguendo i passaggi indicati di seguito:

  1. Innanzitutto, carica il file del carattere utilizzando la classe FontFileDefinition.
  2. Quindi, inizializza l’oggetto classe FontDefinition con FontType (TTF) e l’oggetto FontFileDefinition come argomenti.
  3. Quindi, chiama il metodo Font.Open() con l’oggetto FontDefinition come argomento e inizializza l’oggetto classe TtfFont.
  4. Successivamente, scorrere i diversi codici e decodificarli in Glyph ID.
  5. Infine, controlla gli ID dei glifi per il supporto dei simboli latini.

Nell’esempio di codice seguente viene illustrato come rilevare se un determinato carattere TrueType supporta i simboli latini o meno in C#.

// Questo esempio di codice mostra come rilevare se un particolare font TrueType supporta o meno i simboli latini.
// Percorso del file TTF
string fontPath = @"D:\Files\font\Montserrat-Regular.ttf";

// Carica il file del carattere
FontFileDefinition fontFileDefinition = new FontFileDefinition("ttf", new FileSystemStreamSource(fontPath));

// Oggetto di definizione del carattere
FontDefinition fd = new FontDefinition(FontType.TTF, fontFileDefinition);

// Apri il carattere
TtfFont font = (TtfFont)Font.Open(fd);

var latinText = true;

// Verifica il supporto dei simboli latini
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);
}

Rileva i simboli latini nei caratteri Type1 usando C#

Possiamo anche rilevare i simboli latini nei caratteri Type1 seguendo i passaggi indicati di seguito:

  1. Innanzitutto, carica il file del carattere utilizzando la classe FontFileDefinition.
  2. Quindi, inizializza l’oggetto classe FontDefinition con FontType (Type1) e l’oggetto FontFileDefinition come argomenti.
  3. Quindi, chiama il metodo Font.Open() con l’oggetto FontDefinition come argomento e inizializza l’oggetto classe Type1Font.
  4. Successivamente, scorrere i diversi codici e decodificarli in Glyph ID.
  5. Infine, controlla gli ID dei glifi per il supporto dei simboli latini.

Nell’esempio di codice seguente viene illustrato come rilevare se un particolare tipo di carattere Type1 supporta i simboli latini o meno in C#.

// Questo esempio di codice mostra come rilevare se un particolare tipo di carattere Type1 supporta o meno i simboli latini.
// Percorso del file del carattere di tipo 1
string fontPath = @"D:\Files\font\courier.pfb";

// Carica il file del carattere
FontFileDefinition fontFileDefinition = new FontFileDefinition("pfb", new FileSystemStreamSource(fontPath));

// Oggetto di definizione del carattere
FontDefinition fd = new FontDefinition(FontType.Type1, fontFileDefinition);

// Apri il carattere
Type1Font font = (Type1Font)Font.Open(fd);

var latinText = true;

// Verifica il supporto dei simboli latini
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);
}

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare la libreria senza limitazioni di valutazione.

Conclusione

In questo articolo abbiamo appreso come determinare se un particolare font TrueType o Type1 supporta i simboli latini o meno in C#. Inoltre, puoi saperne di più su Aspose.Font per .NET API usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche