最近使用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 打印面单时遇到的坑相关推荐

  1. android 开发 佳博打印模板_电商在打印快递电子面单时的常见问题及解决方法

    电商经营流程中有发货这一环节,而发货时需要在外包装上面贴一张标签.这张标签就是用电子面单打印机打印出来的,那么打印机工作过程中,出现设置问题或小故障怎么办?佳博打印机小编在这里总结了一些电子面单打印机 ...

  2. python笔记 print+‘\r‘ (打印新内容时删除打印的旧内容)

    \r 表示将光标的位置回退到本行的开头位置 配合end=''不换行,实现打印新内容时删除旧内容 1 倒计时举例 1.1 '\r'+end='' import time for i in range(1 ...

  3. erp打印面单 php实现,利用店小秘ERP处理Shopee虾皮订单及打印面单

    对于Shopee虾皮订单来了后,一般如何处理呢?很多新手小白都是很懵的状态,特别是使用ERP软件的话,更加不知道该如何处理.下面虾皮路介绍一下利用店小秘ERP处理Shopee虾皮订单及打印面单的步骤及 ...

  4. JS使用Lodop控件打印表单和二维码

    有关Lodop的查询可看文章:Lodop打印条码二维码设置多宽不一定是多宽 一.了解Lodop 1.1Lodop的定义 Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内 ...

  5. 条码打印软件如何批量打印快递单 1

    随着快递行业的兴起,也会出现各种各样的快递单,快递单上除了有"收件人""收件人地址""收件人电话"等固定不变的数据,还应该有相对应的可变数据 ...

  6. 使用Lodop控件打印表单和二维码

    文章目录 1.了解Lodop 1.1Lodop的定义 1.2Lodop主要函数 1.3Lodop的下载 2.在页面中引入Lodop 3.支持的浏览器 4.Lodop的应用 4.1使用Lodop打印表单 ...

  7. for循环对数组push一个对象时遇到的坑

    for循环对数组push一个对象时遇到的坑 json数组用for循环进行赋值并push,导致打印的所有结果是一样的 如图所示 动态向一个数组中push对象后tree的值打进结果一样 Console(t ...

  8. smartform 打印预览时转PDF查看

    smartform 打印预览时,经常会有分页以及其他等等原因,预览的效果跟最后打印结果有些出入.为了方便查看预览时的数据,可以输入Tcode "PDF!",就会把当前预览的数据转换 ...

  9. php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别

    if(isset($_POST['submit'])) 它的意思是不是判断是否配置了$_POST['submit'] 这个变量呢?如果有这个变量 在执行其它代码 应该这样用if(isset($_POS ...

最新文章

  1. 全国大学生智能车竞赛相关培训汇总
  2. Jrebel6.3.3破解,配置图文教程
  3. PostgreSQL数据类型-枚举类型、几何类型、网络地址类型和其他数据类型
  4. 运算符面试题(剑指offer,面试宝典,牛客网)
  5. 9.VMware vsphere 5.0新体验-新增功能
  6. bean json转kotlin_Android--------kotlin插件神器Json直接生成javaBean
  7. 机器学习中回归问题的性能衡量指标
  8. #和妹妹一起做毕业设计#从需求到软件发布的流程记录—— 需求、设计篇
  9. 【海洋女神原创】关于installshield“完美卸载”的改进方法
  10. android获得手机目录,关于android手机文件目录的收集
  11. SVN创建分支及合并
  12. JavaScript键盘鼠标监听功能
  13. 家用千兆路由器排行榜前十名_路由器哪个牌子好?千兆路由器2019排行
  14. javascript简单介绍总结(二)
  15. 中南大学计算机学院楠,中南比湖大更湖大,不对,应该说湖大没中南大学中南。...
  16. HLA高层体系结构+RTI(2)
  17. android监听卡1电话,Android 监听 SIM 卡状态
  18. 五一影视圈的神仙打架,揭开了内容市场暗自角力的真相
  19. java机顶盒_Java技术在数字电视机顶盒中的应用
  20. LeetCode340:至多包含 K 个不同字符的最长子串(python)

热门文章

  1. mysql 树莓派3 性能_树莓派 3b 的性能怎么样?
  2. TL437xF-EVM开发板硬件说明书
  3. Mybatis多表关联查询(一对多关联查询)
  4. Simulink代码生成(二十二)——TSP开发之创建外部设备模块
  5. Geoserver介绍2:geoserver页面介绍
  6. 查快递单号物流,如何分析揽收后没有物流的单号
  7. AutoCAD软件学习小细节,你get到了么?
  8. Hackrf_One_Lesson1
  9. etry error, curr request is null
  10. 项目打包打的是什么包_打工人是什么梗 打工人语录 打工人表情包合集来啦