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.

  1. Crear una FontDefinition: Construya la ruta completa al archivo de fuente Type1 (p. ej., string fontPath = Path.Combine(dataDir, "courier.pfb");) y cree una FontFileDefinition para el formato .pfb. Luego, construya una FontDefinition con FontType.Type1 y la definición del archivo.
  2. Abrir la fuente y acceder a las métricas: Abra la fuente con Aspose.Font.Font.Open(fd), que devuelve un objeto Font. Conviértalo en Type1Font para acceder a las propiedades específicas de Type1 y luego lea las propiedades de las métricas como Ascender, Descender, TypoAscender, TypoDescender y UnitsPerEm.
  3. 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.

  1. Cargar la fuente Type1: Crear una FontFileDefinition para el archivo .pfb (p. ej., string fontPath = Path.Combine(dataDir, "courier.pfb");) y, a continuación, crear una FontDefinition con FontType.Type1 y la definición del archivo.

  2. 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}

Have any questions about Aspose.Font?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.