8

java应用页面打印中文空白

 2 years ago
source link: https://blog.51cto.com/riverxyz/5369899
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

java应用调用开源打印插件打印中文页面的时候,显示空白

java应用页面打印中文空白_中文字体

,但是使用finashell重启应用再次打印同样的页面却可以打印

百思不得其解

照理来说ssh终端不会影响应用的功能,但是事实确实是使用finashell重启应用的时候再次打印可以显示内容,而使用xshell,putty,winscp的命令行重启应用,再打印,打印空白

检查JasperReport6.x配置

叫开发检查这个开源插件的配置,说配置没有问题,而且开发什么win系统本地启动也能打印

检查启动脚本

将启动的shell脚本使用dos2unix统一转化一次,并且将脚本重新保存一次,没有效果

检查linux字体配置

1 查看/usr/share/fonts/chinese路径,发现确实有需要的中文字体文件
java应用页面打印中文空白_中文编码_02
2 设置chown -R 755 /usr/share/fonts/chinese
3 检查/etc/fonts/fonts.confs配置,已经添加了字体文件夹
java应用页面打印中文空白_glibc-common_03
4 检查字体文件夹是否已经加载
java应用页面打印中文空白_环境变量_04
java应用页面打印中文空白_glibc-common_05

最终解决办法

1 安装中文语言包
yum install -y kde-l10n-Chinese
这个后来经测试,再卸载掉也不影响打印,但是为了保险起见还是安装吧
2 安装依赖包
yum -y install glibc-common
经检查,这个应该是必须要安装的,否则会不生效,如果已经有安装过需要重新安装一次
yum -y reinstall glibc-common
3 设置java和LANG环境变量
vi /etc/profile
添加

export LANG="zh_CN.UTF-8"  
export LC_ALL="zh_CN.UTF-8"
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/sapjco3.jar
export LD_LIBRARY_PATH=dir:$LD_LIBRARY_PATH:$JAVA_HOME/jre/lib/amd64/server

soure /etc/profile

由于rpm包安装的jdk环境,所以这里不设置应该是没有关系,我测试了将这些java环境变量unset后仍然是不影响的,但是如果不是rpm安装的应该就需要设置

经过以上设置后,浏览器再次访问打印中文表单能正常打印

java应用页面打印中文空白_环境变量_06

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK