Codestruktur:
Code: Select all
src/
└── main/
├── java/
│ └── org/
│ └── demo/
│ └── App.java
└── resources/
├── fonts/
│ └── fonts.xml
└── jasperreports_extension.properties
pom.xml
Code: Select all
net.sf.jasperreports
jasperreports
6.20.6
Code: Select all
package org.demo;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Hello world!
*
*/
public class App {
private static JasperPrint getJasperPrint(InputStream jasperStream, Map parameters, List list) throws JRException {
JRDataSource dataSource = null;
if (null == list || list.size() == 0) {
dataSource = new JREmptyDataSource();
} else {
dataSource = new JRBeanCollectionDataSource(list);
}
return JasperFillManager.fillReport(jasperStream, parameters, dataSource);
}
public static void exportToPdf(String jasperPath, Map parameters, List list, String filePath) {
try (InputStream inputStream = Files.newInputStream(Paths.get(jasperPath));
FileOutputStream fileOutputStream = new FileOutputStream(filePath) ){
JasperPrint jasperPrint = getJasperPrint(inputStream, parameters, list);
JasperExportManager.exportReportToPdfStream(jasperPrint, fileOutputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main( String[] args ) throws IOException {
String testParameter = "abc";
String jasperPath = "/Users/zhuhongxu/Downloads/pdftest/break/111.jasper";
String pdfPath = "/Users/zhuhongxu/Downloads/pdftest/break/17.pdf";
File file = new File(pdfPath);
if (!file.exists()) {
boolean newFile = file.createNewFile();
System.out.println("file create success");
if (!newFile) {
return;
}
}
Map map = new HashMap();
map.put("Parameter1", testParameter);
exportToPdf(jasperPath, map, null, pdfPath);
}
}
Code: Select all
Code: Select all
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.lobstertwo=fonts/fonts.xml

Die roten Pfeile zeigen an, wo es meiner Meinung nach Probleme gibt, das heißt, diese Symbole möchte ich nicht am Anfang eines a erscheinen Zeile。
Mobile version