背景:
随意生成字符串,然后把字符串保存成图片,要求能自动换行,可以设置字符间距,行间距,并获取每一行的字符串内容。
尝试使用如下两种方式:
1. 逐一写入字符的方式,代码如下,可以实现设置不同的字符间距和行间距,实现自定义换行,但因为是字符级别的,生成效果与实际中看到的字符串不太一样
char[] ch = strRandstring.ToCharArray();
PointF pf = new Point(10, 10);
SizeF charSize;
foreach (char c in ch)
{
charSize = graAry[i].MeasureString(c.ToString(), fFontType); graAry[i].DrawString(c.ToString(), fFontType, Brushes.Black, pf);
pf.X += (charSize.Width - 5);
if (pf.X > 2000)
{
pf.X = 10;
pf.Y += (charSize.Height + 10);
}
}
2. 用rectangle 绑定字符串,可以实现自动换行,但还没有找到设置行间距的方法,求大神赐教!!1
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
graAry[i].DrawString(strRandstring, fFontType, Brushes.Black, new Rectangle() { X=20,Y = 20, Width = 2000, Height = 1000}, sf);