最近再写一个c#的打印程序,需要设定字体为楷体,编译环境为win7,设置字体为楷体,打印正常。
float left = DrawString(e.Graphics, new PointF(50.8f, 69.2f), comboBox1.SelectedItem.ToString(), new Font("楷体", 16), new SolidBrush(Color.Black));//姓名
DrawString(e.Graphics, new PointF(130f, 57.2f), textBox1.Text.ToString(), new Font("楷体", 16), new SolidBrush(Color.Black));//年
DrawString(e.Graphics, new PointF(145f, 57.2f), textBox2.Text.ToString(), new Font("楷体", 16), new SolidBrush(Color.Black));//委
DrawString(e.Graphics, new PointF(165f, 57.2f), textBox3.Text.ToString(), new Font("楷体", 16), new SolidBrush(Color.Black));//号
当到客户端(win xp)测试时,发现打印出的字体经常不对,从word中看到字体是楷体_gb2312。但是在xp的font文件夹下看到的字体名为“楷体”,双击字体进去就变成了“楷体_gb2312”.查阅资料是win7字体已经改名,需要下载xp两种字体进行安装。明明都是微软的字体,居然偷偷改名了。
现在的解决办法是判断系统,如果版本号高于xp就按“楷体”低的就按“楷体_gb2312”
本文介绍了一个C#打印程序在不同操作系统上字体显示不一致的问题及解决方案。作者在Win7环境下设置字体为楷体时打印正常,但在XP环境下出现字体显示错误,通过判断系统版本解决了字体兼容性问题。
1274

被折叠的 条评论
为什么被折叠?



