使用html2image-0.9.jar生成图片。 
在本地window系统正常,放到服务器linux系统时候中文乱码问题。英文可以,中文乱码应该就是字体问题了。

一、首先需要在linux安装字体,simsun.ttc  simsun.ttf simsunb.ttf

1、新建目录

/user/share/fonts/chinese

2、上传字体,在/user/share/fonts/chinese目录

simsun.ttc  simsun.ttf

3、执行,进入/user/share/fonts/chinese目录

chmod 777 simsun.ttc

chmod 777 simsun.ttf

fc-cache -fv

4、查看安装的字体

fc-list

注意:

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

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

安装完字体以后,下面就是最重要的步骤了

二、CP simsun.ttc  simsun.ttf 字体到JDK的jre/lib/fonts/fallback 目录下

首先来说说产生这个问题的原因。java程序启动的时候会去在$JAVA_HOME/jre/lib/fonts目录下寻找相应的字体来显示。由于 JDK默认没有中文字体,所以我们需要手工的来设置一下,让java应用程序能够找到相应的中文字体。这样就能够解决问题了。

JDK中文处理办法基本步骤如下:

1)cd $JAVA_HOME/jre/lib/fonts

2)mkdir fallback

3)cp xxx.ttf fallback #xxx.ttf代表你想要的中文字体文件

4)cd fallback

5)mkfontscale

6)mkfontdir

这里最主要的就是fallback这个目录,这个目录必须建,原因如下:

JFreeChart默认字体有"Arial","Dialog", "Dialog", "SansSerif", "Tahoma"    而需要用到是宋体等中文字体时,JVM找不到相关字体文件,所以会显示乱码,解决方法如下:

方法一:

复制所使用的中文字体文件(如simsun.ttc)到此目录中(如果没有fallback目录,请手动建立。)
$JAVA_HOME/jre/lib/fonts/fallback

为何要建立fallback目录参照sequence.fallback的说明:

If the runtime environment has a directory lib/fonts/fallbackand this directory contains valid TrueType or Type 1 fonts, theruntime automatically adds these fonts as fallback fonts for 2Drendering. On Windows, if there is a system EUDC (End User DefinedCharacters) font registered with Windows, the runtime automaticallyadds this font as well as a fallback font for 2Drendering

方法二:

将Linux系统的字体目录作为JDK下面的一个字体目录连接。 ln -s $FONTS_PATH/FONT_DIR$JAVA_HOME/jre/lib/fonts/fallback

字体下载地址:

https://download.csdn.net/download/a7657z/10122506

HtmlImageGenerator字体乱码问题解决、html2image放linux上乱码问题解决的更多相关文章

  1. HtmlImageGenerator乱码问题解决、html2image放linux上乱码问题解决

    使用html2image-0.9.jar生成图片. 在本地window系统正常,放到服务器linux系统时候中文乱码问题.英文可以,中文乱码应该就是字体问题了. 一.首先需要在linux安装字体,si ...

  2. linux 环境下安装oracle11g方法及安装过程中遇上的问题解决方法

     Oralce安装教程 1.先安装需要的依赖包 找到哪个没有安装,直接yum install XX,直到所有的都安装完成.注意,可能一个包安装了,再次执行检查,还是提示没有安装,那么就不需要管他们了, ...

  3. 解决Linux终端乱码的两则例子

    现象描述 我们先来说一下出现乱码的原因. 例子 先举个实际的例子,我们一般通过ssh远程到服务器上进行操作.当在终端上执行一些有输出的任务时,有可能会遇到乱码,特别是输出中有中文时. 比如,我登陆上o ...

  4. iconv内容,convmv文件名,unix2dos,dos2unix文件格式转换,od/cut/wc/dd/diff/uniq/nice/du等命令,linux文件名乱码,文件名,文件内容,vim编码设置

    1.enconv文件名编码转换,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下 enconv -L zh_CN -x UTF-8 filename enconv -L GB2312 -x  ...

  5. 数据库系统入门 | Oracle Linux上部署Oracle 11g服务,并实现SSH远程登录管理

    文章目录 写在前面 一.实验内容 二.实验前期准备 1.软件目录 2.准备一些配置文件.脚本文件 三.实验方案(具体步骤) (一)在虚拟机上安装Oracle Linux (二)在Linux上安装Ora ...

  6. Linux中文乱码问题终极解决方法

    方法一: 修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030该文件在用户目录下,对于其他用户,也必须相应修改该文件. 使用该方法时putty能显示中 ...

  7. Linux rar乱码

    大家都知道,Linux下的中文乱码是一个很烦的事情,在这里我叫大家如何解决这个问题. rar乱码 ubunut下打开rar包,如果里面有中文就会显示乱码,其实就觉这个问题最简单了,只要把进入新立得,搜 ...

  8. linux.backspace乱码(转)

    42 linux.backspace乱码 linux环境sqlplus中使用backspace键出现乱码的解决方法2008-04-30 16:32 在linux环境下使用sqlplus,在回删(bac ...

  9. 第二章 在Linux上部署.net core

    项目目标部署环境:CentOS 7+ 项目技术点:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginx 开源地址:https ...

随机推荐

  1. Oracle11g密码过期处理方法

    首先 查询密码有效期:   SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIF ...

  2. [javaSE] 类型转换(1加1等于几)

    打印 ‘a’+1,输出98,解释:’a’是char类型占2个8bit,1是int类型占4个,’a’字符会被自动强制转换为int类型对应ascii码表97 打印’1’+1,输出 50,解释:’1’是ch ...

  3. Java的简单书写格式

    在一个java源代码中只能出现一个public类,而且必须跟文件名相同 在源代码的全局域类中只有 public 和 default 两种可见度 全局域不能写代码,只能定义类 成员类的构造方法和类的可见 ...

  4. Syntax error on token "Invalid Regular Expression Options", no accurate corr

    今天导入项目一个js文件报这个错 Syntax error on token "Invalid Regular Expression Options", no accurate c ...

  5. 【基于初学者的SSH】struts2 环境配置

    01:导入Jar包 下载地址:http://struts.apache.org/ 将下好的jar包放导WEB-INF下的lib文件夹下 02:创建Action:com.action.LoginActi ...

  6. 南阳nyoj 56 阶乘因式分解(一)

    阶乘因式分解(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数, ...

  7. Var与Dynamic的区别

    1.var与dynamic的区别   C#中的很多关键词用法比较容易混淆,var和dynamic就是其中一组,但其实它们是有本质的区别的.var 在编译阶段已经确定类型,在初始化时候,必须提供初始化的 ...

  8. python3中的新式类mro查看和C3算法原理

    两个公式 L(object) = [object] L(子类(父类1, 父类2)) = [子类] + merge(L(父类1), L(父类2) , [父类1, 父类2])注意 + 代表合并列表 mer ...

  9. YII使用beanstalk队列

    转载于:http://blog.csdn.net/yao970953039/article/details/41821387 1.系统centos 我是直接使用yum install beanstal ...

  10. java.lang.IllegalStateException: Mapped class was not specified

    错误如下:java.lang.IllegalStateException: Mapped class was not specifiedat org.springframework.util.Asse ...