Ler informações de Glifos e Métricas
.NET API Solução para calcular largura de string, calcular coordenadas de glifos e outras manipulações com glifos.
Aspose.Font API Solution tem uma funcionalidade rica para trabalhar com fontes. Conversão, manipulações com glifos, detecção de símbolos latinos e muito mais. Alguns dos recursos estão ligados a manipulações com glifos.
Glifo é um caractere projetado individualmente de um tipo de letra, ou é uma representação gráfica de um símbolo/caractere. Para saber mais sobre essa unidade de fonte, leia o artigo Introdução ao Glyph .
Esta página descreve a opção de como ler as informações de Glifos e Métricas, mas toda a funcionalidade é cuidadosamente descrita em Usando objetos Glyph artigo. Lá você encontrará muito mais exemplos de código C# e aprenderá a funcionalidade do Aspose.Font para trabalhar com glifos e os objetos Glyph em particular. Mais exemplos de código do uso do Aspose.Font para manipular Glyphs são armazenados em Aspose.Font.Examples.sln .
Para trabalhar com glifos, precisamos:
Aspose.Font for .NET API, que é uma API de conversão e manipulação de documentos rica em recursos, poderosa e fácil de usar para a plataforma C#.
Abra o gerenciador de pacotes NuGet e procure por Aspose.Font e instale. Você também pode usar o seguinte comando do Console do Gerenciador de Pacotes.
Package Manager Console Command
PM> Install-Package Aspose.Font
Etapas para calcular a largura da string usando C#:
- Declare o texto e outras constantes. Aqui, como exemplo, a frase «Hello world» é usada.
- Declare uma variável para a largura da string.
- Obtenha um glifo para cada letra no texto usando a classe GlyphId . Calcule a largura de todo o texto.
- O mesmo resultado pode ser obtido usando o método MeasureString() .
- Imprima os resultados de saída.
Código C# para descobrir a largura da string
using System;
using System.IO;
using System.Drawing;
using System.Collections.Generic;
using Aspose.Font.Sources;
using Aspose.Font.Glyphs;
using Aspose.Font.RenderingPath;
//Declare the text and other constants
const string text = "Hello world";
const int fontSize = 10;
//Declare a variable for string width
double width = 0;
//Get a glyph for each letter in text and calculate width for whole text.
//The same result can be achieved using the method font.Metrics.MeasureString(text, fontSize).
foreach (char symbol in text)
{
GlyphId gid = this._font.Encoding.DecodeToGid(symbol);
Glyph glyph = this._font.GetGlyphById(gid);
width += (glyph.WidthVectorX / this._font.Metrics.UnitsPerEM) * fontSize;
}
//Print output results
Console.WriteLine(string.Format("Width for text \"{0}\" with font size {2} is equal {3}." ,
text, FontName, fontSize, width));
Etapas para calcular todos os pontos de glifo com coordenadas usando C#:
- Declare a lista resultante com pontos .
- Especifique a referência do serviço de inicialização na interface IPathSegment .
- Itere todos os segmentos de caminho de glifo e some os pontos.
Código C# para descobrir pontos de glifo
Glyph glyph;
//Declare the resultant list with points
List<Point> points = new List<Point>();
//Init service reference on IPathSegment
IPathSegment prevSegment = null;
//Iterate all the glyph path segments and collect points
foreach (IPathSegment segment in glyph.Path.Segments)
{
if ((segment is LineTo)
|| (segment is CurveTo))
{
if (prevSegment is MoveTo)
{
MoveTo moveTo = prevSegment as MoveTo;
AddPoint((int)moveTo.X, (int)moveTo.Y, points);
}
if (segment is LineTo)
{
LineTo line = segment as LineTo;
AddPoint((int)line.X, (int)line.Y, points);
}
else if (segment is CurveTo)
{
CurveTo curve = segment as CurveTo;
AddPoint((int)curve.X1, (int)curve.Y1, points);
AddPoint((int)curve.X2, (int)curve.Y2, points);
AddPoint((int)curve.X3, (int)curve.Y3, points);
}
}
prevSegment = segment;
}
void AddPoint(int x, int y, List<Point> points)
{
Point p = new Point();
p.X = x;
p.Y = y;
points.Add(p);
}
Perguntas frequentes
1. O que é uma métrica de glifo?
Métricas de glifo são os parâmetros que influenciam como o glifo é posicionado quando o layout de texto é criado.
2. O que são métricas de glifos?
As métricas de glifo mais usadas são largura de avanço, origem, rolamentos laterais, linha de base, subida, subida, descida, descida, caixa delimitadora, altura, largura e kerning.
3. Como gerenciar glifos com esta solução de API?
Para codificar glifos em C#, use as entidades do namespace Aspose.Font.Glyphs .
4. O que é um glifo?
Glyph é um caractere projetado individualmente de um tipo de letra. Também pode ser definido como uma representação gráfica de um símbolo/caractere.