Compruebe la compatibilidad con símbolos latinos para fuentes TrueType o Type1 en C#

Un símbolo de carácter latino es un carácter en forma de marca, signo o palabra. La fuente define cómo se mostrarán los caracteres/símbolos digitalmente o en forma imprimible utilizando un conjunto de propiedades. El archivo de fuente contiene el diseño y otra información sobre la fuente. En ciertos casos, es posible que debamos verificar si alguna fuente específica admite símbolos latinos o no. En este artículo, aprenderemos cómo comprobar la compatibilidad de los símbolos latinos con las fuentes TrueType o Type1 en C#.

En este artículo se tratarán los siguientes temas:

  1. API de C# para detectar compatibilidad con símbolos latinos en fuentes
  2. Detectar símbolos latinos en fuentes TrueType usando C#
  3. Detectar símbolos latinos en fuentes Type1 usando C#

API de C# para detectar compatibilidad con símbolos latinos en fuentes

Para detectar la compatibilidad con símbolos latinos en las fuentes, utilizaremos la API Aspose.Font for .NET. Permite cargar, guardar y extraer información de tipos de fuentes compatibles. Descargue la DLL de la API o instálela usando NuGet.

PM> Install-Package Aspose.Font

Detectar símbolos latinos en fuentes TrueType usando C#

Podemos detectar símbolos latinos en las fuentes TrueType siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue el archivo de fuente usando la clase FontFileDefinition.
  2. A continuación, inicialice el objeto de clase FontDefinition con FontType (TTF) y el objeto FontFileDefinition como argumentos.
  3. Luego, llame al método Font.Open() con el objeto FontDefinition como argumento e inicialice el objeto de clase TtfFont.
  4. Después de eso, recorra los diferentes códigos y decodifíquelos en Glyph ID.
  5. Finalmente, verifique los ID de glifo para la compatibilidad con símbolos latinos.

El siguiente ejemplo de código muestra cómo detectar si una fuente TrueType en particular admite símbolos latinos o no en C#.

// Este ejemplo de código demuestra cómo detectar si una fuente TrueType en particular admite símbolos latinos o no.
// Ruta del archivo TTF
string fontPath = @"D:\Files\font\Montserrat-Regular.ttf";

// Cargue el archivo de fuente
FontFileDefinition fontFileDefinition = new FontFileDefinition("ttf", new FileSystemStreamSource(fontPath));

// Objeto de definición de fuente
FontDefinition fd = new FontDefinition(FontType.TTF, fontFileDefinition);

// abre la fuente
TtfFont font = (TtfFont)Font.Open(fd);

var latinText = true;

// Compruebe el soporte de símbolos latinos
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);
}

Detectar símbolos latinos en fuentes Type1 usando C#

También podemos detectar símbolos latinos en las fuentes Type1 siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue el archivo de fuente usando la clase FontFileDefinition.
  2. A continuación, inicialice el objeto de clase FontDefinition con FontType (Type1) y el objeto FontFileDefinition como argumentos.
  3. Luego, llame al método Font.Open() con el objeto FontDefinition como argumento e inicialice el objeto de clase Type1Font.
  4. Después de eso, recorre los diferentes códigos y descifralos en Glyph ID.
  5. Finalmente, verifique los ID de glifo para la compatibilidad con símbolos latinos.

El siguiente ejemplo de código muestra cómo detectar si una fuente Type1 en particular admite símbolos latinos o no en C#.

// Este ejemplo de código demuestra cómo detectar si una fuente Type1 en particular admite símbolos latinos o no.
// Ruta del archivo de fuente Type1
string fontPath = @"D:\Files\font\courier.pfb";

// Cargue el archivo de fuente
FontFileDefinition fontFileDefinition = new FontFileDefinition("pfb", new FileSystemStreamSource(fontPath));

// Objeto de definición de fuente
FontDefinition fd = new FontDefinition(FontType.Type1, fontFileDefinition);

// abre la fuente
Type1Font font = (Type1Font)Font.Open(fd);

var latinText = true;

// Compruebe el soporte de símbolos latinos
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);
}

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.

Conclusión

En este artículo, hemos aprendido cómo determinar si una fuente TrueType o Type1 en particular admite símbolos latinos o no en C#. Además, puede obtener más información sobre Aspose.Font for .NET API utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también