jarspertreport6.3解决barbecue1.5 linxu服务器中打印条码无法显示数字

在Linux服务器上使用JasperReport遇到条码下的数字无法显示的问题,原因是服务器无图形化界面导致获取屏幕分辨率异常。通过分析源代码,发现HeadlessEnvironment类的默认分辨率和字体设置导致此问题。解决方法是自定义Environment类,重写getResolution和getDefaultFont方法,确保与JasperReport使用的字体一致,并设定合适的分辨率。
摘要由CSDN通过智能技术生成

开发时在windows下正常

 

但在linux下不正常条码下的“012345679”没有打印出来

 

看了下barbecu的源代码,发现是由于linux服务器是非图形化界面,导致Toolkit.getDefaultToolkit().getScreenResolution();获取每英寸的像素点时抛出了异常

但是源代码中又吧异常捕获住了。

private static void determineCurrentEnvironment() {
Environment current;
if (defaultEnvironment != null) {
current = defaultEnvironment;
} else {
current = new DefaultEnvironment();
}
try {
// Try to get the res, this will fail in headless mode
current.getResolution();
} catch (UnsupportedOperationException e) {
current = new HeadlessEnvironment();
} catch (InternalError e) {
current = new HeadlessEnvironment();

}
env = current;
}

直接返回了HeadlessEnvironment

public final class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值