Glifos y métricas de fuentes Type1 | .NET
Obtener métricas de fuentes
Las métricas de fuentes contienen información como “Ascender”, “Descender”, “TypoAscender”, “TypoDescender” y “UnitsPerEm”. Aspose.Font para .NET API puede leer la información de métricas de fuentes del archivo de fuentes Type1 utilizando el siguiente código de muestra.
- Crear una
FontDefinition: Construya la ruta completa al archivo de fuente Type1 (p. ej.,string fontPath = Path.Combine(dataDir, "courier.pfb");) y cree unaFontFileDefinitionpara el formato.pfb. Luego, construya unaFontDefinitionconFontType.Type1y la definición del archivo. - Abrir la fuente y acceder a las métricas: Abra la fuente con
Aspose.Font.Font.Open(fd), que devuelve un objetoFont. Conviértalo enType1Fontpara acceder a las propiedades específicas de Type1 y luego lea las propiedades de las métricas comoAscender,Descender,TypoAscender,TypoDescenderyUnitsPerEm. - Usar las métricas: Estos valores se pueden usar para cálculos de diseño, escalado o cualquier procesamiento tipográfico que requiera su aplicación.
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);Detectar símbolos latinos
Aspose.Font para .NET le permite detectar símbolos latinos en archivos de fuentes Type1. Esto se puede lograr utilizando el siguiente código de muestra.
Cargar la fuente Type1: Crear una
FontFileDefinitionpara el archivo.pfb(p. ej.,string fontPath = Path.Combine(dataDir, "courier.pfb");) y, a continuación, crear unaFontDefinitionconFontType.Type1y la definición del archivo.Detectar símbolos latinos compatibles: Iterar sobre la colección de glifos de la fuente y usar
DecodeToGid()para traducir cada carácter Unicode a su ID de glifo interno. Si el método devuelve un ID distinto de cero, el glifo está presente en la fuente, lo que indica compatibilidad con ese carácter latino.
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}