Отображение текста с помощью глифов
Решение .NET API. для отображения текста нужным шрифтом.
Aspose.Font API Solution имеет богатый функционал для работы со шрифтами. Преобразование, манипуляции с глифами, обнаружение латинских символов и многое другое. Некоторые функции связаны с манипуляциями с глифами, такими как рендеринг текстов.
Глиф — это индивидуально разработанный символ шрифта или графическое представление символа/знака. Чтобы узнать больше об этой единице шрифта, прочитайте статью Introduction to Glyph .
На этой странице описан вариант отображения текста «Hello world» с помощью глифов, но вся функциональность подробно описана в Использовании объектов Glyph статья. Там вы найдете гораздо больше примеров кода C# и узнаете о возможностях Aspose.Font для работы с глифами и объектами Glyph в частности.
Для отрисовки текста глифами нам понадобится:
Aspose.Font for .NET API — многофункциональный, мощный и простой в использовании API для работы с документами и преобразования для платформы C#.
Откройте диспетчер пакетов NuGet, найдите Aspose.Font и установите его. Вы также можете использовать следующую команду из консоли диспетчера пакетов.
Package Manager Console Command
PM> Install-Package Aspose.Font
Шаги для отрисовки текста «Hello world» с помощью C#
- Создайте класс GlyphOutlinePainter, которому требуется объект типа System.Drawing.Drawing2D.GraphicsPath для графического рисования.
- Реализуйте интерфейс Rendering.IGlyphOutlinePainter для рисования глифов с помощью этого интерфейса.
- Подсистема рендеринга будет вызывать Mетоды GlyphOutlinePainter для рисования глифа, поэтому внутренний путь глифа будет отображаться в объекте GraphicsPath в результате рендеринга глифа. Чтобы получить изображение глифа в растровом представлении, результирующий GraphicsPath должен быть нарисован в объекте System.Drawing.Bitmap.
- Чтобы получить более подробный пример кода с четкими пояснениями, изучите статью Визуализация текста с использованием шрифта TrueType .
Код C# для отображения фразы
using Aspose.Font.Rendering;
using Aspose.Font.RenderingPath;
class GlyphOutlinePainter: IGlyphOutlinePainter
{
private System.Drawing.Drawing2D.GraphicsPath _path;
private System.Drawing.PointF _currentPoint;
public GlyphOutlinePainter(System.Drawing.Drawing2D.GraphicsPath path)
{
_path = path;
}
public void MoveTo(MoveTo moveTo)
{
_path.CloseFigure();
_currentPoint.X = (float)moveTo.X;
_currentPoint.Y = (float)moveTo.Y;
}
public void LineTo(LineTo lineTo)
{
float x = (float)lineTo.X;
float y = (float)lineTo.Y;
_path.AddLine(_currentPoint.X, _currentPoint.Y, x, y);
_currentPoint.X = x;
_currentPoint.Y = y;
}
public void CurveTo(CurveTo curveTo)
{
float x3 = (float)curveTo.X3;
float y3 = (float)curveTo.Y3;
_path.AddBezier(
_currentPoint.X,
_currentPoint.Y,
(float)curveTo.X1,
(float)curveTo.Y1,
(float)curveTo.X2,
(float)curveTo.Y2,
x3,
y3);
_currentPoint.X = x3;
_currentPoint.Y = y3;
}
public void ClosePath()
{
_path.CloseFigure();
}
}
Часто задаваемые вопросы
1. Что такое отрисовка текста?
Согласно Microsoft , рендеринг текста — это процесс преобразования строки в формат, читаемый пользователем. Проще говоря, это отображение на экране текстов с помощью шрифтовых единиц - глифов.
2. Как отображается шрифт?
Для рендеринга шрифтов с помощью этого решения API вам потребуются объекты Aspose.Font.Rendering и Aspose.Font.Renderers пространства имен. Во-первых, реализуйте методы IGlyphOutlinePainter. Затем создайте метод DrawText(). Создайте служебный метод для вычисления ширины шрифта и вызовите функцию рендеринга текста.
3. Что такое кернинг?
Кернинг корректирует промежутки между глифами, чтобы текст выглядел более гладким. Это также помогает сократить длину текстовой строки.