linux服务器下添加字体

时间:2022-10-25 08:53:37

版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源。

  引言:这两天在开发一个动态生成海报的东西(图片拼接,图片水印),开发在windows下没有问题,图片和文字都能正常的生成出来。但是当我将程序发布到服务器上(linux)时,发现生成的海报图片文字没生成出来。楼主使用的是graphics.drawString("张三", chunkWidth, chunkHeight);这里graphics使用的字体楼主设置的是宋体。而BufferedImage在内存创建的图像调用的是服务器端的字体。而程序所在的linux服务器没有装该字体,所以就出现了文字没生成出来的问题。下面讲怎样在linux服务器下添加字体。

这里我将本机的宋体安装到linux服务器上。

首先得找到宋体的文件,很简单:我们打开c盘,搜索simsun.ttc,然后将该文件copy一份。或者自己网上去下载也行。

楼主试了两种方法:

1.在java环境中添加字体

首先进入到服务器使用的jre目录,一般都是在:usr/lib/jvm/java-6-sun/jre/lib/fonts

使用的命令就是 cd usr/lib/jvm/java-1.8.0/jre/lib/fonts.

注意:这里的java-1.8.0可能和你的不一样,按你自己的名称进入。如果进去之后没有fonts文件夹,就自己创建一个,命令是  mkdir fonts

进入之后,将simsun.ttc文件copy到该目录下即可。(可以使用文件服务器放上去,你也可以使用linux的cp命令)

然后重启服务器就ok

2.添加系统字体

首先需要将simsun.ttc放到服务器上,可以建一个目录,楼主建的目录为:fonts

进入到该目录,将simsun.ttc放在该目录下,然后开始执行以下命令:

[root@localhost fonts]# mkfontscale
[root@localhost fonts]# mkfontdir
[root@localhost fonts]# fc-cache
这样在重启服务器就ok了。