Glyphes et métriques des polices Type1 | .NET

Obtenir les métriques de police

Les métriques de police contiennent des informations telles que Ascender, Descender, TypoAscender, TypoDescender et UnitsPerEm. L’API Aspose.Font pour .NET peut lire les informations sur les métriques de police à partir du fichier de police Type1 à l’aide de l’exemple de code suivant.

  1. Créer une FontDefinition – Construisez le chemin complet vers le fichier de police Type1 (par exemple, string fontPath = Path.Combine(dataDir, "courier.pfb");) et créez une FontFileDefinition pour le format .pfb, puis construisez une FontDefinition avec FontType.Type1 et la définition du fichier.
  2. Ouvrir la police et accéder aux métriques – Ouvrez la police avec Aspose.Font.Font.Open(fd) qui renvoie un objet Font. Convertissez-le en Type1Font pour accéder aux propriétés spécifiques à Type1, puis lisez les propriétés des métriques telles que Ascender, Descender, TypoAscender, TypoDescender et UnitsPerEm. 3. Utiliser les métriques – Ces valeurs peuvent être utilisées pour les calculs de mise en page, la mise à l’échelle ou tout traitement typographique requis par votre application.
 1// For complete examples and data files, please go to https://github.com/aspose-font/Aspose.Font-for-.NET
 2string fileName = dataDir + "courier.pfb"; //Font file name with full path
 3
 4FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
 5Type1Font font = Aspose.Font.Font.Open(fd) as Type1Font;
 6
 7string name = font.FontName;
 8Console.WriteLine("Font name: " + name);
 9Console.WriteLine("Glyph count: " + font.NumGlyphs);
10string metrics = string.Format(
11    "Font metrics: ascender - {0}, descender - {1}, typo ascender = {2}, typo descender = {3}, UnitsPerEm = {4}",
12    font.Metrics.Ascender, font.Metrics.Descender,
13    font.Metrics.TypoAscender, font.Metrics.TypoDescender, font.Metrics.UnitsPerEM);
14
15Console.WriteLine(metrics);

Détecter les symboles latins

Aspose.Font pour .NET vous permet de détecter les symboles latins à partir des fichiers de polices Type1. Ceci peut être réalisé en utilisant l’exemple de code suivant .

  1. Charger la police Type1 – Créer une FontFileDefinition pour le fichier .pfb (par exemple, string fontPath = Path.Combine(dataDir, "courier.pfb");), puis créer une FontDefinition avec FontType.Type1 et la définition du fichier.

  2. Détecter les symboles latins pris en charge – Parcourir la collection de glyphes de la police et utiliser DecodeToGid() pour traduire chaque caractère Unicode en son identifiant de glyphe interne. Si la méthode renvoie un identifiant différent de zéro, le glyphe est présent dans la police, indiquant la prise en charge de ce caractère latin.

 1// For complete examples and data files, please go to https://github.com/aspose-font/Aspose.Font-for-.NET
 2string fileName = dataDir + "courier.pfb"; //Font file name with full path
 3
 4FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
 5Type1Font font = Aspose.Font.Font.Open(fd) as Type1Font;
 6
 7bool latinText = true;
 8
 9
10for (uint code = 65; code < 123; code++)
11{
12    GlyphId gid = font.Encoding.DecodeToGid(code);
13    if (gid == null || gid == GlyphUInt32Id.NotDefId)
14    {
15        latinText = false;
16    }
17}
18
19if (latinText)
20{
21    Console.WriteLine(string.Format("Font {0} supports latin symbols.", font.FontName));
22}
23else
24{
25    Console.WriteLine(string.Format("Latin symbols are not supported by font {0}.", font.FontName));
26}

Have any questions about Aspose.Font?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.