2013-07-01 2 views
0

PDF을 생성하기 위해 JasperReport을 사용하고 있습니다. 이제 컴파일 된 .jasper 파일을 사용하고 있지만 backup 오류가 발생하면 JasperJRXML 파일을 다시 컴파일하도록하십시오. 어떻게해야합니까? 이것이 최선의 방법입니까? JasperReport 파일을 컴파일하십시오.

내 코드입니다 : JASPER_IN_PACKAGE.jasper 파일에 일정

InputStream reportC1 = ReportService.class.getResourceAsStream(JASPER_IN_PACKAGE); 
bytes = JasperRunManager.runReportToPdf(reportC1, params, new JRBeanCollectionDataSource(records)); 
PdfReader doc = new PdfReader(bytes); 

.

답변

2

쉽게 sourceFile 당신은 .jrxml에 File입니다

JasperCompileManager.compileReportToFile(sourceFile, targetFile); 

와 파일을은 .jrxml 컴파일 할 수 있습니다, targetFile 파일을 .jasper에-만들어야 당신에 File이다.

"우수 사례": 저는 .jrxml 파일 만 배포하고 각각 .jasx 파일이 .jrxml 파일보다 오래된 경우 컴파일합니다. 이렇게하면 로컬 파일을 컴파일하지 않고도 소스 파일을 쉽게 편집 할 수 있습니다. IMHO는 모범 사례이기도하므로 특히 바이너리 컨텐트가 아닌 재구성 가능한 것을 커밋해서는 안됩니다.

+0

파일을 저장하는 대신 InputStream을 직접 가져 오는 것이 가능합니다 (예를 들어 패키지 내의 리소스에서 읽는 경우)? – Tobia

+0

예, 직접'InputStream'을 소스로 사용할 수 있으며 컴파일 된 결과를 저장할 필요가 없습니다. [JasperCompileManager] (http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JasperCompileManager.html)의 메소드를 확인하십시오. –

관련 문제