最近搞了一个项目,需要生成投保电子凭证的pdf文件,之前在项目也用了这个组件,只是很多年前别人开发的,我只是项目负责人而已,想起以前的项目就找了ireport这个做为生成pdf的工具。一开始捣鼓了好久,中文不显示出来,加粗失效问题困扰很久,终于两天时间把他设计完了,主要是模板改的版本太多,其实这个东西真的挺简单的。不多说了,直接上代码。

<!-- jasperreports Start --><dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports</artifactId><version>6.0.0</version></dependency><!--字体加粗的依赖包--><dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports-fonts</artifactId><version>6.0.0</version></dependency><dependency><groupId>org.codehaus.groovy</groupId><artifactId>groovy</artifactId><version>2.4.9</version></dependency><!--生成pdf组件包:iText.jar  --><dependency><groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>4.2.1</version></dependency><!--中文字体包:iTextAsian.jar--><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency><!-- jasperreports end -->

调用代码

/*** @FileName testController.java* @Description:** @Date 2020年2月22日* @author pangxianhe* */
@RestController("testController")
@RequestMapping("/ireport")
@Api(value = "ireport测试", tags = "ireport测试")
public class testController extends BaseController<DtsWbRequestEntity> {@GetMapping("exportPdf")public void exportPdf(HttpServletRequest request, HttpServletResponse response) throws Exception {// 获取容器资源解析器ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();org.springframework.core.io.Resource[] resources = resolver.getResources("ireport/21.jasper");org.springframework.core.io.Resource[] resourcestb = resolver.getResources("img/tb.png");org.springframework.core.io.Resource[] resourceswb = resolver.getResources("img/wb.png");InputStream stream = resources[0].getInputStream();URI streamtb = resourcestb[0].getURI();URI streamwb = resourceswb[0].getURI();Map<String, Object> map=new HashMap<String, Object>();map.put("policyno", "9231989100");map.put("username", "贤哥");map.put("idtype", "身份证");map.put("idcard", "458015");map.put("tbimg", streamtb);map.put("wbimg", streamwb);map.put("signingdate", "2020-2-23");map.put("starendtime", "2020 年 02 月 25 日 00 时-2021 年 02 月 24 日 24 时");JasperPrint jasperPrint = JasperFillManager.fillReport(stream, map, new JREmptyDataSource());byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint);response.setContentType("application/pdf");response.setContentLength(bytes.length);ServletOutputStream ouputStream = response.getOutputStream();ouputStream.write(bytes, 0, bytes.length);ouputStream.flush();ouputStream.close();}}

以上代码基本上搞定,接下来需要注意的是设计的时候的小细节了

中文显示不出来,需要设置下这个,也可以在xml中全局添加这个

具体的代码如下:

<style name="Base" isDefault="true" fontSize="10" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>

接下来解决加粗之后的字体不剩下的问题,具体什么原因不显示,大家可以百度下,接下来很简单的一个设置即可,选择这个类型的文本即可。

最后补充一个小技巧给大家,

static text如何设置边框呢?然后堆成一个表格呢,接下来记住下面几段代码,好像在软件中没这个设置,我是找不到的。

z在xml中找到你要添加的边框静态字体的上方添加如下代码即可生产边框。代码如下:

               <box><topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/><leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/><bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/><rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/></box>

效果图我就不贴了,以上,如有说漏请留言互相交流。谢谢

由于项目测试的时候用的是windows系统,但是发布到linux系统的时候,他报如下错误,具体处理方法看下文

2020-03-04 10:55:18.469 - WARN  [nio-7010-exec-7] n.s.j.e.f.FontUtil            .checkAwtFont - line:351 - Font '宋体' is not available to the JVM. For more details, see 

1、把需要用到的字体(可以直接拷贝windows系统的C:\WINDOWS\Fonts 下的相关字体)拷贝当前项目的classpath下,一般为classes目录下 
2、在classpath里添加 jasperreports.properties 属性文件 
文件内容为: net.sf.jasperreports.awt.ignore.missing.font=true

以上补充完毕。

java jasperReports导出PDF字体加粗失效,中文显示不出来相关推荐

  1. ireport1.3.2 pdf字体加粗失效的问题

    问题: 在ireport中设置加粗后,预览时生效,但是导出pdf时字体没有加粗的效果 原因: 查看jasperreports-1.3.2.jar源码net.sf.jasperreports.engin ...

  2. jasperreports导出pdf报表时粗体的显示问题

    最近一直在做报表,用的是iReport3.7.3和jasperReport3.7.3,在导出pdf形式的报表时,文字的粗体效果出不来, 弄了大半天,查阅了很多资料,试了很多种方法,效果都不理想.下面总 ...

  3. php导出excel字体加粗,phpexcel 导出格式,字体调整

    对于小数量数据(低于1000)条,如果出现导出较慢,或者网页超时,那可能是phpexcel样式文件写错地方了,可能和数据混在一起,导致较慢. 如果数据太多导致超时或者内存溢出,可添加 set_time ...

  4. 解决LaTeX英文字体加粗失效、无法加粗问题

    文章目录 一.前言 二.具体问题 三.解决办法 四.使用效果 一.前言 最近使用 LaTeX 作为模板写实验报告.论文时,在自己写的 cls 文件里定义好了各种字体及格式,但是在使用过程中却出现了部分 ...

  5. latex 字体加粗失效

    问题: 最近用latex写英文文章,用\textbf{}加粗选中字体失效, 解决方法: 引入包 \usepackage[T1]{fontenc} 参考: https://blog.csdn.net/q ...

  6. vscode LaTeX XeLaTeX下英文字体加粗失效

    vscode 使用一下配置: "latex-workshop.latex.recipes": [ { "name": "PDFlatex", ...

  7. jspdf添加宋体_jspdf下载pdf文件模糊,字体加粗等样式失效

    jspdf下载pdf文件模糊,字体加粗等样式失效 exportPDF = () => {let { shop } = this.props; let element = document.get ...

  8. 咖啡汪日志——JAVA导出pdf文件加水印 文字+图片、文字

    咖啡汪日志--JAVA导出pdf文件加水印 文字和图片.文字 hello,又大家见面了! 作为一只不是在戏精就是在戏精路上的哈士奇,今天要展示给大家的就是如何快捷地给pdf文件增加各种水印.嗷呜呜,前 ...

  9. netdxf 字体加粗_怎样将cad转换成pdf字体变粗

    CAD软件输出的标准文件格式是DWG格式,有时候也输出DXF格式,但有时候需要把CAD图纸转换成PDF格式,这样更加有利于传播和多平台播放.但是很多人可能都不知道该如何去把CAD的图纸转换为PDF,那 ...

最新文章

  1. Pytorch实践中的几个重要概念
  2. NFV技术本质是强调网络功能的软硬件同化能力,实现网络价值由硬件向软件的前移
  3. 算法------二叉树的层序遍历
  4. LibreOj 6279数列分块入门 3 练习了一下set
  5. Cookie和Session的区别详解
  6. css框架:五大css流行框架的总结-css教程-PHP中文网
  7. 腾讯智慧出行和现代汽车集团创新中心(北京)正式建立创新战略合作伙伴关系
  8. 点赞!一个程序员花了14小时寻找问题疫苗的流向
  9. 项目记录:solr4.2 在tomcat7 的两种(singlecore + multicore) 配置安装 及solrj 的初步使用...
  10. Spring Security Oauth2 (五) 密码码模式 整合jwt
  11. pcl dll load failed: 找不到指定的模块。_解决cuda10.1+tensorflow-gpu出现“cudart64_100.dll”问题...
  12. 创意视觉应用︱基于深度学习的CVaaS计算机视觉即服务案例(Computer Vision as a Service)
  13. win11配置mysql环境变量保姆级教程
  14. l/min是什么单位
  15. 儿时的小游戏:象狮虎豹狼狗猫鼠
  16. python程序设计与算法基础第二版课后答案_python算法与程序设计基础答案
  17. 93.第十九章 MySQL数据库 -- MySQL安装和基本使用(三)
  18. erp系统 服务器在哪里的,云erp服务器在哪
  19. CNN+LSTM 的模型结合(keras代码实现)
  20. 远程办公,即将开启企业办公的全新时代!

热门文章

  1. php 访问密码二次验证,phpyun v3.2 (20141222) 前台二次注入(直接出管理密码 demo测试)...
  2. 苹果11自带测试软件,9款旗舰系统对比 iPhone 11居然不是最好用的
  3. 网线 T568A 和 T568B 标准
  4. 如何用revit打不开服务器文件,Revit官方教程丨关于打开Revit文件
  5. tib_tiqu_without_temperature
  6. 批量地导入本地的scholar.enw到endnote
  7. 15. RDMA之RoCE Soft-RoCE
  8. unity urp 实现衣服绒毛效果
  9. linux FTP本地登录
  10. iOS随机生成验证码