As fontes são um conjunto de caracteres imprimíveis ou exibíveis com diferentes estilos, pesos, etc. Eles são usados para adicionar uma aparência diferente a documentos ou páginas da Web com base em diferentes requisitos. Os arquivos de fonte contêm o design e outras informações sobre a fonte. Neste artigo, usaremos os arquivos de fonte para detectar se uma fonte suporta símbolos latinos ou não programaticamente com Java.

API Java para detectar símbolos latinos em fontes TrueType e Type1

Aspose.Font for Java é uma biblioteca para trabalhar com fontes como TrueType, CFF, Type1, etc. A API suporta carregar, salvar e extrair informações sobre fontes. A API também permite detectar o suporte para símbolos latinos em fontes. Você pode baixar a API usando o Maven ou baixar o JAR da seção downloads.

<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 em fontes TrueType usando Java

A seguir estão as etapas para detectar se uma determinada fonte TrueType oferece suporte a símbolos latinos ou não.

  • Crie uma instância da classe FontDefinition usando o arquivo de fonte.
  • Crie uma instância da classe TtfFont usando o objeto de FontDefinition criado na etapa anterior.
  • Percorra os diferentes códigos e decodifique-os em IDs de glifo.
  • Verifique os IDs de glifo para o suporte de símbolos latinos.

O código de exemplo a seguir mostra como detectar se uma fonte TrueType específica oferece suporte a símbolos latinos ou não.

// Caminho do arquivo de fonte
String fileName = Utils.getDataDir() + "Montserrat-Regular.ttf"; //Font file name with full path

// Carregar o arquivo de fonte
FontDefinition fd = new FontDefinition(FontType.TTF, new FontFileDefinition("ttf", new FileSystemStreamSource(fileName)));
TtfFont ttfFont = (TtfFont) Font.open(fd);

boolean latinText = true;

// Verifique o suporte 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 em fontes Type1 usando Java

O processo de detecção de suporte para símbolos latinos em fontes Type1 é semelhante às fontes TrueType. A única diferença é que usaremos a classe Type1Font para acessar as informações da fonte. A seguir estão as etapas para detectar o suporte para símbolos latinos em fontes Type1.

  • Crie uma instância da classe FontDefinition usando o arquivo de fonte.
  • Crie uma instância da classe Type1Font usando o objeto de FontDefinition criado na etapa anterior.
  • Percorra os diferentes códigos e decodifique-os em IDs de glifo.
  • Verifique os IDs de glifo para o suporte de símbolos latinos.

O código de exemplo a seguir mostra como detectar se uma determinada fonte Type1 oferece suporte a símbolos latinos ou não.

// Caminho do arquivo de fonte
String fileName = Utils.getDataDir() + "courier.pfb"; //Font file name with full path

// Carregar o arquivo de fonte
FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
Type1Font font = (Type1Font) Font.open(fd);

boolean latinText = true;

// Verifique o suporte 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()));
}

Obtenha uma licença gratuita

Para experimentar a API sem limitações de avaliação, você pode solicitar uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como detectar o suporte para símbolos latinos em fontes usando Java. Os exemplos de código compartilhado permitem detectar se uma fonte específica oferece suporte a símbolos latinos ou não. O Aspose.Font para Java fornece muitos recursos adicionais para trabalhar com fontes que você pode explorar em detalhes visitando a documentação oficial. Em caso de dúvidas, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.

Veja também