Vérifier la prise en charge des symboles latins pour les polices TrueType ou Type1 en C#

Un symbole de caractère latin est un caractère sous la forme d’une marque, d’un signe ou d’un mot. La police définit la manière dont les caractères/symboles doivent être affichés numériquement ou sous une forme imprimable à l’aide d’un ensemble de propriétés. Le fichier de police contient la conception et d’autres informations concernant la police. Dans certains cas, nous devrons peut-être vérifier si une police spécifique prend en charge les symboles latins ou non. Dans cet article, nous allons apprendre à vérifier la prise en charge des symboles latins pour les polices TrueType ou Type1 en C#.

Les sujets suivants seront traités dans cet article :

  1. API C# pour détecter la prise en charge des symboles latins dans les polices
  2. Détecter les symboles latins dans les polices TrueType à l’aide de C#
  3. Détecter les symboles latins dans les polices Type1 à l’aide de C#

API C# pour détecter la prise en charge des symboles latins dans les polices

Pour détecter la prise en charge des symboles latins dans les polices, nous utiliserons l’API Aspose.Font for .NET. Il permet de charger, d’enregistrer et d’extraire des informations à partir de types de polices pris en charge. Veuillez soit télécharger la DLL de l’API ou l’installer à l’aide de NuGet.

PM> Install-Package Aspose.Font

Détecter les symboles latins dans les polices TrueType à l’aide de C#

Nous pouvons détecter les symboles latins dans les polices TrueType en suivant les étapes ci-dessous :

  1. Tout d’abord, chargez le fichier de police à l’aide de la classe FontFileDefinition.
  2. Ensuite, initialisez l’objet de classe FontDefinition avec FontType (TTF) et l’objet FontFileDefinition comme arguments.
  3. Ensuite, appelez la méthode Font.Open() avec l’objet FontDefinition comme argument et initialisez l’objet de classe TtfFont.
  4. Après cela, parcourez les différents codes et décodez-les en identifiants Glyph.
  5. Enfin, vérifiez les ID de glyphe pour la prise en charge des symboles latins.

L’exemple de code suivant montre comment détecter si une police TrueType particulière prend en charge les symboles latins ou non en C#.

// Cet exemple de code montre comment détecter si une police TrueType particulière prend en charge les symboles latins ou non.
// Chemin du fichier TTF
string fontPath = @"D:\Files\font\Montserrat-Regular.ttf";

// Charger le fichier de police
FontFileDefinition fontFileDefinition = new FontFileDefinition("ttf", new FileSystemStreamSource(fontPath));

// Objet de définition de police
FontDefinition fd = new FontDefinition(FontType.TTF, fontFileDefinition);

// Ouvrir la police
TtfFont font = (TtfFont)Font.Open(fd);

var latinText = true;

// Vérifier la prise en charge des symboles latins
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);
}

Détecter les symboles latins dans les polices Type1 à l’aide de C#

Nous pouvons également détecter les symboles latins dans les polices Type1 en suivant les étapes ci-dessous :

  1. Tout d’abord, chargez le fichier de police à l’aide de la classe FontFileDefinition.
  2. Ensuite, initialisez l’objet de classe FontDefinition avec FontType (Type1) et l’objet FontFileDefinition comme arguments.
  3. Ensuite, appelez la méthode Font.Open() avec l’objet FontDefinition comme argument et initialisez l’objet de classe Type1Font.
  4. Après cela, parcourez les différents codes et décodez-les en identifiants Glyph.
  5. Enfin, vérifiez les ID de glyphe pour la prise en charge des symboles latins.

L’exemple de code suivant montre comment détecter si une police Type1 particulière prend en charge les symboles latins ou non en C#.

// Cet exemple de code montre comment détecter si une police Type1 particulière prend en charge les symboles latins ou non.
// Chemin d'accès au fichier de police Type1
string fontPath = @"D:\Files\font\courier.pfb";

// Charger le fichier de police
FontFileDefinition fontFileDefinition = new FontFileDefinition("pfb", new FileSystemStreamSource(fontPath));

// Objet de définition de police
FontDefinition fd = new FontDefinition(FontType.Type1, fontFileDefinition);

// Ouvrir la police
Type1Font font = (Type1Font)Font.Open(fd);

var latinText = true;

// Vérifier la prise en charge des symboles latins
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);
}

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer la bibliothèque sans limitation d’évaluation.

Conclusion

Dans cet article, nous avons appris à déterminer si une police TrueType ou Type1 particulière prend en charge les symboles latins ou non en C#. En outre, vous pouvez en savoir plus sur Aspose.Font for .NET en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également