前言

Github:https://github.com/HealerJean

博客:http://blog.healerjean.com

项目中用到一个利用java生成图片的功能,但是在上传到linxu服务器的时候出现了乱码,这个是由于我们的linux的服务器的字体不存在导致的,在我们自己的电脑(操作系统上),系统为我们提供了很多的字体,可以让我们直接使用,但是linux是不可以直接使用的,需让将字体导入进去。

java中字体设置为了  PingFang SC

//商品推荐
Graphics2D fixTuiJian = bufferedImage.createGraphics();
fixTuiJian.setColor(new Color(77,77,77));
Font fixTuiJianFont = new Font("PingFang SC", Font.PLAIN, 13*30);
fixTuiJian.setFont(fixTuiJianFont);
//失真处理
fixTuiJian.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
fixTuiJian.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);


WX20180717-152204@2x

博主用的是mac本开发,使用mac开发的同学们应该知道,mac和linux很多地方是一样的,包括文字

1、打开mac文字存放目录,将下面的字体找到,复制出来

博主使用的字体是 PingFang.ttc

/System/Library/Fonts

JeandeMBP:Fonts healerjean$ cd /System/Library/Fonts
JeandeMBP:Fonts healerjean$ 
JeandeMBP:Fonts healerjean$ ls -l
total 803992
-rw-r--r--  1 root  wheel    263912  3 23  2017 Apple Braille Outline 6 Dot.ttf
-rw-r--r--  1 root  wheel    280980  3 23  2017 Apple Braille Outline 8 Dot.ttf
-rw-r--r--  1 root  wheel    183080  3 23  2017 Apple Braille Pinpoint 6 Dot.ttf
-rw-r--r--  1 root  wheel    189668  3 23  2017 Apple Braille Pinpoint 8 Dot.ttf
-rw-r--r--  1 root  wheel    135960  3 23  2017 Apple Braille.ttf
-rw-r--r--  1 root  wheel  99827880  3 23  2017 Apple Color Emoji.ttc
-rw-r--r--  1 root  wheel    973516  3 23  2017 Apple Symbols.ttf
-rw-r--r--  1 root  wheel  28386056  8 12  2015 AppleSDGothicNeo.ttc
-rw-r--r--  1 root  wheel  18487164 11  8  2014 AquaKana.ttc
-rw-r--r--  1 root  wheel    192088  7 31  2016 ArialHB.ttc
-rw-r--r--  1 root  wheel   3325568  3 23  2017 Avenir Next Condensed.ttc
-rw-r--r--  1 root  wheel   5045468  3 23  2017 Avenir Next.ttc
-rw-r--r--  1 root  wheel   1593228  3 23  2017 Avenir.ttc
-rw-r--r--  1 root  wheel   1646421  3 23  2017 Courier.dfont

JeandeMBP:Fonts healerjean$ ls -l | grep PingFang.ttc
-rw-r--r--  1 root  wheel  80376964  8  1  2016 PingFang.ttc
JeandeMBP:Fonts healerjean$ 

2、java环境中添加字体

java环境字体目录

/usr/local/java/jre/lib/fonts/

root@beiyong:/etc/nginx# cd /usr/local/java/jre/lib/fonts/
root@beiyong:/usr/local/java/jre/lib/fonts# ll -l
total 80548
drwxr-xr-x  2 uucp  143     4096 Jul 17 11:40 ./
drwxr-xr-x 15 uucp  143     4096 Mar 29 12:55 ../
-rw-r--r--  1 uucp  143     4041 Mar 29 12:52 fonts.dir
-rw-r--r--  1 uucp  143    75144 Mar 29 12:52 LucidaBrightDemiBold.ttf
-rw-r--r--  1 uucp  143    75124 Mar 29 12:52 LucidaBrightDemiItalic.ttf
-rw-r--r--  1 uucp  143    80856 Mar 29 12:52 LucidaBrightItalic.ttf
-rw-r--r--  1 uucp  143   344908 Mar 29 12:52 LucidaBrightRegular.ttf
-rw-r--r--  1 uucp  143   317896 Mar 29 12:52 LucidaSansDemiBold.ttf
-rw-r--r--  1 uucp  143   698236 Mar 29 12:52 LucidaSansRegular.ttf
-rw-r--r--  1 uucp  143   234068 Mar 29 12:52 LucidaTypewriterBold.ttf
-rw-r--r--  1 uucp  143   242700 Mar 29 12:52 LucidaTypewriterRegular.ttf
-rw-r--r--  1 root root 80376964 Jul 17 11:41 PingFang.ttc
root@beiyong:/usr/local/java/jre/lib/fonts# 






COPY dockerDirectory/PingFang.ttc /usr/share/fonts/truetype/dejavu/

3、将mac中的放进去,然后重启web服务器既可使用,注意观察上面的字体后缀名都是ttf才能够通用,所以如果是windows开发的朋友。注意去网络上找找相关字体吧。

WX20180717-152743@2x

ContactAuthor