準備工作
下載下傳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