生成Word/ATU报表提示 font family not found

1、先从你本机 C:\Windows\Fonts 拷贝或者网络上下载你想要安装的字体文件(*.ttf文件)到 /usr/share/fonts/chinese/TrueType 目录下(如果系统中没有此目录,则自行mkdir创建,亦可重命名为自己喜欢的文件夹名)

2、修改字体文件的权限,使root用户以外的用户也可以使用

cd /usr/share/fonts/chinese/TrueType

chmod 755 *.ttf

3、建立字体缓存

mkfontscale (如果提示 mkfontscale: command not found,需自行安装 # yum install mkfontscale )

mkfontdir

fc-cache -fv (如果提示 fc-cache: command not found,则需要安装# yum install fontconfig )

4、重启计算机

reboot

2、安装完毕后,我们在代码中指定要使用的字体

context.Response.ContentType = “image/gif”;
            Bitmap basemap = new Bitmap(200, 60);
            Graphics garph1 = Graphics.FromImage(basemap);
 
            garph1.FillRectangle(new SolidBrush(Color.White), 0, 0, 200, 60);
            Font font = new Font(“consola.ttf”, 48, FontStyle.Bold, GraphicsUnit.Pixel);
 
            Random r = new Random();
            string letters = “ABCDEFGHIJKLMNPQRSTUVWXYZ”;
            string letter;
            StringBuilder s = new StringBuilder();
            for (int i = 0; i < 5; i++)
            {
                letter = letters.Substring(r.Next(0, letters.Length – 1), 1);
                s.Append(letter);
                garph1.DrawString(letter, font, new SolidBrush(Color.Black), i * 38, r.Next(0, 15));
 
            }
 
            Pen linePen = new Pen(new SolidBrush(Color.Black), 2);
            for (int x = 0; x < 6; x++)
            {
                garph1.DrawLine(linePen, new Point(r.Next(0, 199), r.Next(0, 59)), new Point(r.Next(0, 199), r.Next(0, 59)));
            }
 
            basemap.Save(context.Response.OutputStream, ImageFormat.Gif);
            context.Session[“CheckCode”] = s.ToString();    //存入Session,用于对比验证
            context.Response.End();

再次访问清晰可见啊

转自:http://www.uol123.com/2017/06/15/linux上gdi无法使用字体-font-family-not-found.html

posted @ 2017-07-21 17:17  bamboo233  阅读(651)  评论(0编辑  收藏  举报