背景
java应用调用开源打印插件打印中文页面的时候,显示空白 ,但是使用finashell重启应用再次打印同样的页面却可以打印
百思不得其解
照理来说ssh终端不会影响应用的功能,但是事实确实是使用finashell重启应用的时候再次打印可以显示内容,而使用xshell,putty,winscp的命令行重启应用,再打印,打印空白
检查JasperReport6.x配置
叫开发检查这个开源插件的配置,说配置没有问题,而且开发什么win系统本地启动也能打印
检查启动脚本
将启动的shell脚本使用dos2unix统一转化一次,并且将脚本重新保存一次,没有效果
检查linux字体配置
1 查看/usr/share/fonts/chinese路径,发现确实有需要的中文字体文件 2 设置chown -R 755 /usr/share/fonts/chinese 3 检查/etc/fonts/fonts.confs配置,已经添加了字体文件夹 4 检查字体文件夹是否已经加载
最终解决办法
1 安装中文语言包
yum install -y kde-l10n-Chinese
这个后来经测试,再卸载掉也不影响打印,可装可不装吧 2 安装依赖包
yum -y install glibc-common
这个后来经测试,也不影响打印,可装可不装吧
yum -y reinstall glibc-common
3 设置LANG环境变量
vi /etc/profile
添加
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
再
soure /etc/profile
结果验证
经过以上设置后,浏览器再次访问打印中文表单能正常打印
补充
如果没有按顺序执行相关的字体配置也有可能会有问题,补上以下
cd /usr/share/fonts/Chinese
mkfontscale
mkfontdir
fc-cache
补充2
如果还有问题,可以对比一下使用不同的终端的环境变量设置,如果是使用ssh等远程连接的方式执行脚本需要在要执行的脚本前面加上source /etc/profile以加载当前服务器的环境变量,加载当前服务器的中文编码