编译模板
导入字体
jasperreports_extension.properties
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
#xml位置
net.sf.jasperreports.extension.simple.font.families.lobstertwo=fonts/fonts.xml
fonts.xml
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="jrxml里面的字体">
<!--字体文件位置,windows在C:\Windows\Fonts-->
<normal>fonts/fonts.TTF</normal>
<bold>fonts/fonts.TTF</bold>
<italic>fonts/fonts.TTF</italic>
<boldItalic>fonts/fonts.TTF</boldItalic>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
</fontFamily>
</fontFamilies>
生成
导入模板文件
InputStream inputStream = test.class.getResourceAsStream("Blank_A4.jasper");
传入参数
Map<String, Object> map = new HashMap<>();
map.put("key","value");
List<Object> list = new ArrayList<>();
JRBeanCollectionDataSource jrBeanCollectionDataSource = new JRBeanCollectionDataSource(list);
JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, map, dataSource.getConnection());
写出文件
File file = new File("file.pdf");
FileOutputStream fileOutputStream = new FileOutputStream(file);
JasperExportManager.exportReportToPdfStream(jasperPrint,fileOutputStream);