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
- Detectar símbolos latinos em fontes TrueType usando Java
- Detectar símbolos latinos em fontes Type1 usando 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.