Las fuentes son un conjunto de caracteres imprimibles o visualizables con diferentes estilos, pesos, etc. Se utilizan para agregar una apariencia diferente a los documentos o páginas web según los diferentes requisitos. Los archivos de fuentes contienen el diseño y otra información relacionada con la fuente. En este artículo, utilizaremos los archivos de fuentes para detectar si una fuente admite símbolos latinos o no mediante programación con Java.

API de Java para detectar símbolos latinos en fuentes TrueType y Type1

Aspose.Font for Java es una biblioteca para trabajar con fuentes como TrueType, CFF, Type1, etc. La API admite cargar, guardar y extraer información sobre las fuentes. La API también le permite detectar la compatibilidad con símbolos latinos en las fuentes. Puede descargar la API usando Maven o descargar el JAR desde la sección descargas.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-font</artifactId>
    <version>21.4</version>
</dependency>

Detectar símbolos latinos en fuentes TrueType usando Java

Los siguientes son los pasos para detectar si una fuente TrueType en particular admite símbolos latinos o no.

  • Cree una instancia de la clase FontDefinition usando el archivo de fuente.
  • Cree una instancia de la clase TtfFont usando el objeto de FontDefinition creado en el paso anterior.
  • Recorra los diferentes códigos y decodifíquelos en ID de glifos.
  • Compruebe los ID de glifo para ver si son compatibles con los símbolos latinos.

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

// Ruta del archivo de fuente
String fileName = Utils.getDataDir() + "Montserrat-Regular.ttf"; //Font file name with full path

// Cargue el archivo de fuente
FontDefinition fd = new FontDefinition(FontType.TTF, new FontFileDefinition("ttf", new FileSystemStreamSource(fileName)));
TtfFont ttfFont = (TtfFont) Font.open(fd);

boolean latinText = true;

// Compruebe el soporte de símbolos latinos
for (int code = 65; code < 123; code++)
{
    GlyphId gid = ttfFont.getEncoding().decodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.getNotDef())
    {
        latinText = false;
    }
}

if (latinText)
{
    System.out.println(MessageFormat.format("Font {0} supports latin symbols.", ttfFont.getFontName()));
}
else
{
    System.out.println(MessageFormat.format("Latin symbols are not supported by font {0}.", ttfFont.getFontName()));
}

Detectar símbolos latinos en fuentes Type1 usando Java

El proceso para detectar la compatibilidad con los símbolos latinos en las fuentes Type1 es similar al de las fuentes TrueType. La única diferencia es que usaremos la clase Type1Font para acceder a la información de la fuente. Los siguientes son los pasos para detectar la compatibilidad con los símbolos latinos en las fuentes Type1.

  • Cree una instancia de la clase FontDefinition usando el archivo de fuente.
  • Cree una instancia de la clase Type1Font utilizando el objeto de FontDefinition creado en el paso anterior.
  • Recorra los diferentes códigos y decodifíquelos en ID de glifos.
  • Compruebe los ID de glifo para ver si son compatibles con los símbolos latinos.

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

// Ruta del archivo de fuente
String fileName = Utils.getDataDir() + "courier.pfb"; //Font file name with full path

// Cargue el archivo de fuente
FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
Type1Font font = (Type1Font) Font.open(fd);

boolean latinText = true;

// Compruebe el soporte de símbolos latinos
for (int code = 65; code < 123; code++)
{
    GlyphId gid = font.getEncoding().decodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.getNotDef())
    {
        latinText = false;
    }
}

if (latinText)
{
    System.out.println(MessageFormat.format("Font {0} supports latin symbols.", font.getFontName()));
}
else
{
    System.out.println(MessageFormat.format("Latin symbols are not supported by font {0}.", font.getFontName()));
}

Obtenga una licencia gratis

Para probar la API sin limitaciones de evaluación, puede solicitar una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a detectar la compatibilidad con símbolos latinos en fuentes usando Java. Los ejemplos de código compartido le permiten detectar si una fuente en particular admite símbolos latinos o no. Aspose.Font for Java proporciona muchas funciones adicionales para trabajar con fuentes que puede explorar en detalle visitando la documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.

Ver también