JasperReport 打印面单时遇到的坑
最近使用iReport 画模板,使用SpringMVC + JasperReport 打印面单,期间遇到各种坑,做个记录(其中会引入很多jar包,如条码包,二维码的qccode包等)
一. 首先画模板时候一定要减少布局Static Test控件,否则后期调试会布局比较麻烦
二. 打印面单最好使用黑体(京东文档要求黑体)或者微软雅黑,一开始使用的宋体,打印出来恨不清晰
三. 条形码打印问题:在windows下没任何问题,不过发布到linux时出现条码不显示,其原因是linux服务器没有安装图形化界面解决方式见下面代码注释【解决linux下不显示条码数字 】具体见文章(https://blog.csdn.net/a1______/article/details/52727492
/*** 生成pdf格式数据** @param request* @param datelist* @return*/public <T> JasperPrint vanningPdfByJasper(HttpServletRequest request, List<T> datelist,String filePath)throws FileNotFoundException, JRException {JasperPrint jsprint = new JasperPrint();String realPath = request.getServletContext().getRealPath("/");// 得到jasper文件File reportFile = new File(realPath + filePath);// 加载模板FileInputStream fis = new FileInputStream(reportFile);JasperReport jasperReport = JasperCompileManager.compileReport(fis);//解决linux下不显示条码数字 startEnvironment env=new Environment() {public final Font DEFAULT_FONT = new Font("Arial", 0, 20);@Overridepublic int getResolution() { return 60; }@Overridepublic Font getDefaultFont(){ return DEFAULT_FONT; }};EnvironmentFactory.setDefaultEnvironment(env);//解决linux下不显示条码数字 end// 把bean转成jasper的数据源用来下边塞给报表JRDataSource dataSource = new JRBeanCollectionDataSource(datelist );// 填充数据jsprint = JasperFillManager.fillReport(jasperReport, null, dataSource);return jsprint;}
四. 打印面单中文字体问题
Windows没问题,在linux下报错如:Font '微软雅黑' is not available to the JVM. See the Javadoc for more details.
(下面解决方案遇到的坑:从C:\Windows\Fonts 加载字体时候一定要注意字体文件类型,比如我的win10系统获取的微软雅黑字体,后缀名为ttc格式,结果导入后不能使用,从同事的win7拷贝过来 ttf 格式的微软雅黑就可以使用)
具体解决方案如下,来自链接:https://blog.csdn.net/ajia_sunny/article/details/43266643
1、工具 → 选项 → Fonts → Install Font → 打开如下所示窗体(Font Installation)
2、在窗体(Font Installation)中 → Browse → 选择要导入的字体文件(本机字体文件一般存放在C:\WINDOWS\Fonts 下)
选中字体文件(黑体为 simhei.ttf)→ 打开 →
3、在窗体(Font Installation)中 → 下一步
4、下一步 →
在此无需做任何操作
5、下一步
6、完成
7、用 窗体中的 (Export as extension)生成iReport 用 字体 jar 文件
选择字体 jar 文件存放位置,我放在(E:\iReport\iReport-5.6.0\ireport\fonts)下
在文件名处,输入 文件名,保存后
可查看生成的jar 文件是否正确,用7-zip (一款完全免费而且开源的压缩软件)打开看到如下信息
8、工具 → 选项 → Classpath → Add Jar
9、选中 生成的 simhei.jar (黑体jar文件) 添加至iReport 的jar文件中
10、确定 后关闭iReport 5.6.0 环境,重启即可设置使用黑体。
iReport 5.6.0 中PDF 黑体设置
选中文本框 设置属性:
注意:
Font:黑体
Pdf Font name :MHei-Medium
Pdf Embedded:选中
Pdf Encoding:Identity-H
JAVA代码中使用:直接导入生成的 simhei.jar 包
JasperReport 打印面单时遇到的坑相关推荐
- android 开发 佳博打印模板_电商在打印快递电子面单时的常见问题及解决方法
电商经营流程中有发货这一环节,而发货时需要在外包装上面贴一张标签.这张标签就是用电子面单打印机打印出来的,那么打印机工作过程中,出现设置问题或小故障怎么办?佳博打印机小编在这里总结了一些电子面单打印机 ...
- python笔记 print+‘\r‘ (打印新内容时删除打印的旧内容)
\r 表示将光标的位置回退到本行的开头位置 配合end=''不换行,实现打印新内容时删除旧内容 1 倒计时举例 1.1 '\r'+end='' import time for i in range(1 ...
- erp打印面单 php实现,利用店小秘ERP处理Shopee虾皮订单及打印面单
对于Shopee虾皮订单来了后,一般如何处理呢?很多新手小白都是很懵的状态,特别是使用ERP软件的话,更加不知道该如何处理.下面虾皮路介绍一下利用店小秘ERP处理Shopee虾皮订单及打印面单的步骤及 ...
- JS使用Lodop控件打印表单和二维码
有关Lodop的查询可看文章:Lodop打印条码二维码设置多宽不一定是多宽 一.了解Lodop 1.1Lodop的定义 Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内 ...
- 条码打印软件如何批量打印快递单 1
随着快递行业的兴起,也会出现各种各样的快递单,快递单上除了有"收件人""收件人地址""收件人电话"等固定不变的数据,还应该有相对应的可变数据 ...
- 使用Lodop控件打印表单和二维码
文章目录 1.了解Lodop 1.1Lodop的定义 1.2Lodop主要函数 1.3Lodop的下载 2.在页面中引入Lodop 3.支持的浏览器 4.Lodop的应用 4.1使用Lodop打印表单 ...
- for循环对数组push一个对象时遇到的坑
for循环对数组push一个对象时遇到的坑 json数组用for循环进行赋值并push,导致打印的所有结果是一样的 如图所示 动态向一个数组中push对象后tree的值打进结果一样 Console(t ...
- smartform 打印预览时转PDF查看
smartform 打印预览时,经常会有分页以及其他等等原因,预览的效果跟最后打印结果有些出入.为了方便查看预览时的数据,可以输入Tcode "PDF!",就会把当前预览的数据转换 ...
- php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
if(isset($_POST['submit'])) 它的意思是不是判断是否配置了$_POST['submit'] 这个变量呢?如果有这个变量 在执行其它代码 应该这样用if(isset($_POS ...
最新文章
- 全国大学生智能车竞赛相关培训汇总
- Jrebel6.3.3破解,配置图文教程
- PostgreSQL数据类型-枚举类型、几何类型、网络地址类型和其他数据类型
- 运算符面试题(剑指offer,面试宝典,牛客网)
- 9.VMware vsphere 5.0新体验-新增功能
- bean json转kotlin_Android--------kotlin插件神器Json直接生成javaBean
- 机器学习中回归问题的性能衡量指标
- #和妹妹一起做毕业设计#从需求到软件发布的流程记录—— 需求、设计篇
- 【海洋女神原创】关于installshield“完美卸载”的改进方法
- android获得手机目录,关于android手机文件目录的收集
- SVN创建分支及合并
- JavaScript键盘鼠标监听功能
- 家用千兆路由器排行榜前十名_路由器哪个牌子好?千兆路由器2019排行
- javascript简单介绍总结(二)
- 中南大学计算机学院楠,中南比湖大更湖大,不对,应该说湖大没中南大学中南。...
- HLA高层体系结构+RTI(2)
- android监听卡1电话,Android 监听 SIM 卡状态
- 五一影视圈的神仙打架,揭开了内容市场暗自角力的真相
- java机顶盒_Java技术在数字电视机顶盒中的应用
- LeetCode340:至多包含 K 个不同字符的最长子串(python)
热门文章
- mysql 树莓派3 性能_树莓派 3b 的性能怎么样?
- TL437xF-EVM开发板硬件说明书
- Mybatis多表关联查询(一对多关联查询)
- Simulink代码生成(二十二)——TSP开发之创建外部设备模块
- Geoserver介绍2:geoserver页面介绍
- 查快递单号物流,如何分析揽收后没有物流的单号
- AutoCAD软件学习小细节,你get到了么?
- Hackrf_One_Lesson1
- etry error, curr request is null
- 项目打包打的是什么包_打工人是什么梗 打工人语录 打工人表情包合集来啦