Verifique o suporte de símbolos latinos para fontes TrueType ou Type1 em C#

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:

  1. API C# para detectar suporte a símbolos latinos em fontes
  2. Detectar símbolos latinos em fontes TrueType usando C#
  3. 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:

  1. Primeiramente, carregue o arquivo de fonte usando a classe FontFileDefinition.
  2. Em seguida, inicialize o objeto de classe FontDefinition com FontType (TTF) e o objeto FontFileDefinition como argumentos.
  3. Em seguida, chame o método Font.Open() com o objeto FontDefinition como um argumento e inicialize o objeto de classe TtfFont.
  4. Depois disso, percorra os diferentes códigos e decodifique-os em Glyph IDs.
  5. 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:

  1. Primeiramente, carregue o arquivo de fonte usando a classe FontFileDefinition.
  2. Em seguida, inicialize o objeto de classe FontDefinition com FontType (Type1) e o objeto FontFileDefinition como argumentos.
  3. Em seguida, chame o método Font.Open() com o objeto FontDefinition como um argumento e inicialize o objeto de classe Type1Font.
  4. Depois disso, percorra os diferentes códigos e decodifique-os em Glyph IDs.
  5. 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.

Veja também