try this code by overridding postProcessReport method. Code:@Override protected void postProcessReport(JasperPrint populatedReport, Map model) throws Exception { System.out.println("Inside postProcessReport"); super.postProcessReport(populatedReport, model); System.out.println("start download"); JRPdfExporter exporterPdf = new JRXlsExporter(); exporterPdf.setParameter(JRXlsExporterParameter.JASPER_PRINT, populatedReport); exporterPdf.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE); exporterPdf.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS,Boolean.TRUE); //exporterPdf.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE); exporterPdf.setParameter(JRXlsExporterParameter.OUTPUT_FILE_NAME, "D:/filename.pdf" ); exporterPdf.exportReport(); System.out.println("End download"); }