저는 JasperReports
을 처음 접했고 서블릿에서 jasper 파일을 호출하는 법을 모릅니다. 내 보고서에 파이 차트가 있습니다.JasperReports : 서블릿에서 보고서 호출
6
A
답변
1
여기는 서블릿 파일 내에서 생성되는 더미 보고서입니다.
일반 Java 클래스와 동일합니다.
그냥 파일 상단에있는 재스퍼 보고서 클래스에 대한 가져 오기가 있는지 확인하십시오.
아래 예제는 XML 데이터 원본에서 보고서를 작성합니다.
public class JasperServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try {
String reportFile = "myJasperReport.jrxml";
File outputFile = new File("Report.pdf");
HashMap hm = new HashMap();
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory
.newDocumentBuilder();
Document document = documentBuilder.parse(new File("myXml.xml"));
// Compile the report
JasperReport report = JasperCompileManager
.compileReport(reportFile);
JRXmlDataSource xml = new JRXmlDataSource(document, "/xml/root");
// Fill the report
JasperPrint print = JasperFillManager.fillReport(report, hm, xml);
// Create an Exporter
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.OUTPUT_FILE, outputFile);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
// Export the file
exporter.exportReport();
} catch (Exception e) {
e.printStackTrace();
}
}
}
5
재 스퍼 파일을 준비하고 클라이언트로 스트리밍 할 수 있습니다.
bytes[] byteStream = JasperRunManager.runReportToPdf("myJasperReport.jasper",paramMap,databaseConn);
OutputStream outStream = servletResponse.getOutputStream();
response.setHeader("Content-Disposition","inline, filename=myReport.pdf");
response.setContentType("application/pdf");
response.setContentLength(byteStream.length);
outStream.write(bytes,0,bytes.length);
3
것 서블릿에서이 작업을 수행하는 완벽한 방법 :
public void myServletMethod(HttpServletRequest request, HttpServletResponse response) throws IOException{
JasperReport jasperReport = null;
JasperDesign jasperDesign = null;
Map parameters = new HashMap();
String path = getServletContext().getRealPath("/WEB-INF/");
jasperDesign = JRXmlLoader.load(path+"/relative/path/to/MyReport.jrxml");
jasperReport = JasperCompileManager.compileReport(jasperDesign);
byte[] byteStream = JasperRunManager.runReportToPdf(jasperReport, parameters, **new DataSourceOfYourPreference**);
OutputStream outStream = response.getOutputStream();
response.setHeader("Content-Disposition","inline, filename=myReport.pdf");
response.setContentType("application/pdf");
response.setContentLength(byteStream.length);
outStream.write(byteStream,0,byteStream.length);
}
관련 문제
- 1. 하위 보고서 (IReport-JasperReports)의 하위 보고서
- 2. JasperReports : 방향이 다른 하위 보고서
- 3. 서블릿에서 DLL 호출
- 4. 서블릿에서 Google API 호출
- 5. 다른 내용의 JasperReports 다중 페이지 보고서
- 6. 서블릿에서 외부 웹 서비스를 호출
- 7. JasperReports 용 iReport 도구를 사용하여 하위 보고서 만들기
- 8. Crystal Reports에서 JasperReports 프레임 워크로 엔터프라이즈 한 보고서 포팅
- 9. JasperReports : subreportExpression을 동적으로 변경하는 방법
- 10. 서블릿에서 Seam 보안을 사용하여 SLSB 호출
- 11. 서블릿에서 독립 실행 형 Java 프로그램 호출
- 12. JasperReports - 로켈 당 조건부 스타일?
- 13. JasperReports 그룹
- 14. 서블릿에서 자바 클래스 호출하기 서블릿에서
- 15. JasperReports JRBeanCollectionDataSource가 여전히 혼란 스럽습니다.
- 16. JasperReports 크로스 탭 쿼리
- 17. JasperReports - 여러 글꼴 지정?
- 18. JasperReports 및 JRBeanCollectionDataSource 이해
- 19. JasperReports 대 iReport
- 20. JavaBeans 및 JasperReports
- 21. 변경시 자동으로 JasperReports 컴파일
- 22. JasperReports 스타일로 Excel 만들기
- 23. JasperReports 서블릿 종속성
- 24. Alt for JasperReports
- 25. NetBeans가 JasperReports 스크립틀릿을 찾지 못했습니다.
- 26. 보고서 액세스 : 보고서가 호출 된 양식 확인
- 27. 서버 시작시 서블릿에서 Thread.sleep을 호출 할 때 Tomcat을 시작하지 못했습니다.
- 28. 자바 서블릿에서 스레드 호출하기
- 29. Java 데스크톱 애플리케이션에 대한 보고서
- 30. 보고 엔진 지침 (Pentaho, JasperReports, BIRT)
성능은'.jasper' 파일을 작성하는 대신 각 요청에 따라 보고서를 컴파일하여 개선 될 수있다. –