使用字形呈现文本
.NET API 解决方案,用于显示带有所需字体的文本
Aspose.Font API 解决方案具有丰富的字体处理功能。包括转换、字形操作、拉丁符号检测等。部分功能与字形操作相关,如渲染文本。
字形是字体中单独设计的字符或符号/字符的图形表示。了解更多关于此字体单元,请阅读 字形简介 文章。
本页描述了如何使用字形显示«Hello world»文本,但完整功能已在 使用字形对象 文章中详细说明。在那里您会找到更多 C# 代码示例,并了解 Aspose.Font 在处理字形,特别是 Glyph 对象方面的功能。
要使用字形输入文本,我们需要:
Aspose.Font for .NET API 是功能丰富、强大且易于使用的文档操作和转换 API,适用于 C# 平台。
打开 NuGet 包管理器,搜索 Aspose.Font 并安装。您也可以在包管理器控制台中使用以下命令。
Package Manager Console Command
PM> Install-Package Aspose.Font
使用 C# 渲染文本 «Hello world» 的步骤
- 创建 GlyphOutlinePainter 类,该类需要一个 System.Drawing.Drawing2D.GraphicsPath 类型的对象用于图形绘制。
- 实现 Rendering.IGlyphOutlinePainter 接口,以利用该接口绘制字形。
- 渲染子系统将调用 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. 什么是字距调整?
字距调整正在调整字形之间的间距,以便文本看起来更平滑。它还有助于缩短文本字符串的长度。