使用 GDI+ 绘制有间距的文本

您所在的位置:网站首页 rstudio中导入表格有拉丁文字符间距怎么办 使用 GDI+ 绘制有间距的文本

使用 GDI+ 绘制有间距的文本

2024-06-29 12:42| 来源: 网络整理| 查看: 265

在 .NET Framework 中 Graphics.DrawString 方法提供了基本的文本绘制功能。然而,这个方法本身缺乏对字符格式的控制能力,例如不支持多数文本处理器支持的字符间距(大概微软认为不会有人编写基于 .NET 的文本处理器)。这个问题最简单的解决方法是将整个字符串“化整为零”,一个字符一个字符的按照指定间距画出来。然而这样做会产生大量的临时字符串,而且有巨大的 PInvoke 代价。那有没有其他的方法呢?答案是肯定的——GDI+ 底层提供了 GdipDrawDriverString 方法,允许我们对单个字符的输出位置进行控制。遗憾的是也许因为这个方法太底层了,所以在 .NET Framework 中并没有针对它的封装。(顺便说一下,Office 从 Office XP 开始就使用 GDI+ 作为绘图引擎,象 Visio 中的文本绘制就使用了 GdipDrawDriverString)

下面是对 GdipDrawDriverString 的简单封装(GdiplusMethods.cs):

using System;using System.Drawing.Drawing2D;using System.Reflection;using System.Runtime.InteropServices;

namespace System.Drawing{     ///     /// Summary description for GdiplusMethods.    ///     public class GdiplusMethods    {         private GdiplusMethods() { }

        private enum DriverStringOptions        {             CmapLookup = 1,            Vertical &#



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3