Um símbolo de caractere latino é um caractere na forma de uma marca, sinal ou palavra. Font define como os caracteres/símbolos devem ser exibidos digitalmente ou de forma imprimível usando um conjunto de propriedades. O arquivo de fonte contém o design e outras informações sobre a fonte. Em certos casos, podemos precisar verificar se alguma fonte específica suporta símbolos latinos ou não. Neste artigo, aprenderemos como verificar o suporte dos símbolos latinos para fontes TrueType ou Type1 em C#.
Os seguintes tópicos serão abordados neste artigo:
- API C# para detectar suporte a símbolos latinos em fontes
- Detectar símbolos latinos em fontes TrueType usando C#
- Detectar símbolos latinos em fontes Type1 usando C#
API C# para detectar suporte a símbolos latinos em fontes
Para detectar o suporte de símbolos latinos em fontes, usaremos a API Aspose.Font for .NET. Ele permite carregar, salvar e extrair informações de tipos de fonte suportados. Por favor, baixe a DLL da API ou instale-a usando NuGet.
PM> Install-Package Aspose.Font
Detectar símbolos latinos em fontes TrueType usando C#
Podemos detectar símbolos latinos nas fontes TrueType seguindo as etapas abaixo:
- Primeiramente, carregue o arquivo de fonte usando a classe FontFileDefinition.
- Em seguida, inicialize o objeto de classe FontDefinition com FontType (TTF) e o objeto FontFileDefinition como argumentos.
- Em seguida, chame o método Font.Open() com o objeto FontDefinition como um argumento e inicialize o objeto de classe TtfFont.
- Depois disso, percorra os diferentes códigos e decodifique-os em Glyph IDs.
- Finalmente, verifique os IDs dos glifos para o suporte de símbolos latinos.
O exemplo de código a seguir mostra como detectar se uma determinada fonte TrueType oferece suporte a símbolos latinos ou não em C#.
// Este exemplo de código demonstra como detectar se uma determinada fonte TrueType oferece suporte a símbolos latinos ou não.
// Caminho do arquivo TTF
string fontPath = @"D:\Files\font\Montserrat-Regular.ttf";
// Carregar o arquivo de fonte
FontFileDefinition fontFileDefinition = new FontFileDefinition("ttf", new FileSystemStreamSource(fontPath));
// Objeto de definição de fonte
FontDefinition fd = new FontDefinition(FontType.TTF, fontFileDefinition);
// Abra a fonte
TtfFont font = (TtfFont)Font.Open(fd);
var latinText = true;
// Verifique o suporte 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 em fontes Type1 usando C#
Também podemos detectar símbolos latinos nas fontes Type1 seguindo as etapas abaixo:
- Primeiramente, carregue o arquivo de fonte usando a classe FontFileDefinition.
- Em seguida, inicialize o objeto de classe FontDefinition com FontType (Type1) e o objeto FontFileDefinition como argumentos.
- Em seguida, chame o método Font.Open() com o objeto FontDefinition como um argumento e inicialize o objeto de classe Type1Font.
- Depois disso, percorra os diferentes códigos e decodifique-os em Glyph IDs.
- Finalmente, verifique os IDs dos glifos para o suporte de símbolos latinos.
O exemplo de código a seguir mostra como detectar se uma determinada fonte Type1 dá suporte a símbolos latinos ou não em C#.
// Este exemplo de código demonstra como detectar se uma determinada fonte Type1 oferece suporte a símbolos latinos ou não.
// Caminho do arquivo de fonte Type1
string fontPath = @"D:\Files\font\courier.pfb";
// Carregar o arquivo de fonte
FontFileDefinition fontFileDefinition = new FontFileDefinition("pfb", new FileSystemStreamSource(fontPath));
// Objeto de definição de fonte
FontDefinition fd = new FontDefinition(FontType.Type1, fontFileDefinition);
// Abra a fonte
Type1Font font = (Type1Font)Font.Open(fd);
var latinText = true;
// Verifique o suporte 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);
}
Obtenha uma licença gratuita
Você pode obter uma licença temporária gratuita para experimentar a biblioteca sem limitações de avaliação.
Conclusão
Neste artigo, aprendemos como determinar se qualquer fonte TrueType ou Type1 específica oferece suporte a símbolos latinos ou não em C#. Além disso, você pode aprender mais sobre Aspose.Font para .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.