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.
- 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 uneFontFileDefinitionpour le format.pfb, puis construisez uneFontDefinitionavecFontType.Type1et la définition du fichier. - Ouvrir la police et accéder aux métriques – Ouvrez la police avec
Aspose.Font.Font.Open(fd)qui renvoie un objetFont. Convertissez-le enType1Fontpour accéder aux propriétés spécifiques à Type1, puis lisez les propriétés des métriques telles queAscender,Descender,TypoAscender,TypoDescenderetUnitsPerEm. 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 .
Charger la police Type1 – Créer une
FontFileDefinitionpour le fichier.pfb(par exemple,string fontPath = Path.Combine(dataDir, "courier.pfb");), puis créer uneFontDefinitionavecFontType.Type1et la définition du fichier.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}