이 내가
나는 다음과 같은 배열을보고 할 말을 수 있습니다 재스퍼에서 JSON 배열을 처리하는 방법입니다.
[
{"name":"Jerry", "value":"Jesus"},
{"name":"Gideon", "value": "Loves"},
{"name":"Eva", "value": "You"}
]
보고서를 디자인 할 때 필드의 이름을 json 필드 이름과 완전히 동일하게 지정해야합니다. 디자이너에서 나는 이라는 이름의과 값을 추가 할 것입니다. 필요에 따라 보고서 디자이너에 많은 매개 변수를 추가 할 수도 있습니다. 이 예제에서는 Jasper Studio에 이라는 제목 인이라는 매개 변수를 추가하겠습니다.
이제이 테스트 배열을 기반으로 벽옥 보고서를 작성하는 Java 코드가 있습니다. 코드에서 json 데이터를 하드 코딩 하겠지만, 파일이나 무엇이든 가장 좋은 것으로부터로드 할 수 있습니다. 나는 무슨 일이 일어나고 있는지 설명하기 위해 코드에 주석을 달았다. https://mis.io/pub/how-to-create-a-jasper-pdf-report-from-a-json-datasource-in-java/에
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.data.JsonDataSource;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperPrint;
import org.apache.commons.codec.binary.Base64;
import java.util.HashMap;
import java.util.Locale;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.io.*;
//Class Name. This must match the class name you put in your build.gradle file
public class JasperPDFExample {
public static void main(String[] args) {
try {
try {
//Our json object. This can be loaded from file
String rawJsonData = "[{\"name\":\"Jerry\", \"value\":\"Jesus\"},"
+ "{\"name\":\"Gideon\", \"value\": \"Loves\"},"
+ "{\"name\":\"Eva\", \"value\": \"You\"}"
+ "]";
//Load compiled jasper report that we created on first section.
JasperReport report = (JasperReport) JRLoader.loadObject(new File("/home/jerry/Sample.jasper"));
//Convert json string to byte array.
ByteArrayInputStream jsonDataStream = new ByteArrayInputStream(rawJsonData.getBytes());
//Create json datasource from json stream
JsonDataSource ds = new JsonDataSource(jsonDataStream);
//Create HashMap to add report parameters
Map parameters = new HashMap();
//Add title parameter. Make sure the key is same name as what you named the parameter in jasper report.
parameters.put("title", "Jasper PDF Example");
//Create Jasper Print object passing report, parameter json data source.
JasperPrint jasperPrint = JasperFillManager.fillReport(report, parameters, ds);
//Export and save pdf to file
JasperExportManager.exportReportToPdfFile(jasperPrint,"/home/jerry/jasperpdfexample.pdf");
} catch (JRException ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
} catch (Exception ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}
} catch (Exception ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}
}
}
덕분에 나는이 Gradle을 빌드 도구를 사용하여 벽옥을위한 자바 설정과 함께 작동시킬 수 있었다.
이 작업을 수행 했습니까? 나는 지금 같은 일을 시도하고있다. – Marianna