Search code examples
javajasper-reportsjasperserver

compile Jasper design file into .jasper


I have a .jrxml file which is used to generate a jasper report and then a a pdf file from that. for that I used this code.

JasperCompileManager.compileReportToFile("C:/Users/my-pc/Desktop/letters/report xml/testreport.jrxml");

But I got an issue with xsd and dtd which is described here. That article introduces a way to solve the issue by using a java program called LegacyJasperInputStream.

This is how I should call it.

JasperDesign design = JRXmlLoader.load(
   new LegacyJasperInputStream(new FileInputStream("C:/Users/my-pc/Desktop/letters/report xml/testreport.jrxml"))
);

My question is what is this JasperDesign. Can I compile that into .jasper. If so, how to do it?

Thanks!


Solution

  • After searching and trying....Here we go.

    net.sf.jasperreports.engine.design.JasperDesign design = JRXmlLoader.load(
                        new LegacyJasperInputStream(new FileInputStream("C:/Users/my-pc/Desktop/letters/report xml/testreport.jrxml"))
                        );
                JasperReport jasperReport = asperCompileManager.compileReport(design);
    
                JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource());
                System.out.println("INFO: Report is filled and to be exported to pdf now");
    
                try {
                    // export report to pdf
                    JasperExportManager.exportReportToPdfFile(print, "C:/Users/my-pc/Desktop/letters/report xml/test.pdf");
                    System.out.println("DEBUG: Expported to pdf");
                } catch (Exception e) {
    
                    System.out.println("EXCEPTION: while generating pdf : "+e);
                }