准备工作
下载Jaspersoft Studio
下载地址
下载后一直下一步安装
Studio基本使用
- 新建项目
新建模板
具体制作教程可前往B站搜索视频教程
添加中文字体
如果不添加,后面打印出PDF的时候中文显示不出来
电脑自带的字体一般在C:\Windows\Fonts
但该目录有访问权限,直接使用Jasperreort无法访问,
在其他地方新建文件夹,把需要用的字体复制一份到新文件夹中
然后再添加
Jasperreort只能导入TTF后缀文件,有些字体如微软雅黑是ttc结尾的,需要转为TTF再导入
在线转换网站
加入程序
Jasperreort主要是为Java服务的,这里以Java代码为例
新建springboot工程
导出字体jar包
把导出的jar包复制到resources下
右击
导入jrxml到resources下
生成pdf代码
导入maven依赖
<!-- jasperreports -->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.19.1</version>
</dependency>
<!-- 生成条码所需 -->
<dependency>
<groupId>net.sourceforge.barbecue</groupId>
<artifactId>barbecue</artifactId>
<version>1.5-beta1</version>
</dependency>
@SneakyThrows
public static void printerPdf(){
// 需要编译的模板路径
String jrxmlPath = "D:\\Projetcs\\Xiaohong-Project\\JavaPrint\\src\\main\\resources\\demo.jrxml";
// 编译完成后的路径
String jasperlPath = "D:\\Projetcs\\Xiaohong-Project\\JavaPrint\\src\\main\\resources\\demo.jasper";
// 编译模板,编译为jasper后缀的二进制文件
JasperCompileManager.compileReportToFile(jrxmlPath,jasperlPath);
// 构造数据
List<Map> list = new ArrayList<>();
Map map = new HashMap();
map.put("brand","鸟牌");
map.put("boxNo","111222333444");
map.put("category","外星人");
map.put("totalNum","100");
map.put("location","中国大陆");
map.put("scanCode","111111111");
list.add(map);
// 填充数据
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperlPath, null, new JRBeanCollectionDataSource(list));
// 输出文件
String pdfPath = "D:\\Projetcs\\Xiaohong-Project\\JavaPrint\\src\\main\\resources\\demo.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint,pdfPath);
}
打开生成好的pdf