- commons-beanutils-1.9.2.jar
- commons-collections-3.2.jar
- commons-digester-2.1.jar
- commons-logging-1.2.jar
- itext-2.1.7.jar
- jasperreports-5.6.0.jar
You can download from this link : https://drive.google.com/file/d/0B3BD2OiyeQ3UQWN2Nk82R1dhYmM/edit?usp=sharing
After download the .jar files, put those .jar file to the /lib folder. Then I use this code in my controller :
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.export.JRPdfExporter;
class LabController {
def dataSource
def print() {
try {
String reportName, namaFile, dotJasper
namaFile = "barang"
reportName = grailsApplication.mainContext.getResource('reports/' + namaFile + '.jrxml').file.getAbsoluteFile()
dotJasper = grailsApplication.mainContext.getResource('reports/' + namaFile + '.jasper').file.getAbsoluteFile()
// Report parameter
Map reportParam = new HashMap()
// compiles jrxml
JasperCompileManager.compileReportToFile(reportName);
// fills compiled report with parameters and a connection
JasperPrint print = JasperFillManager.fillReport(dotJasper, reportParam, dataSource.getConnection());
ByteArrayOutputStream pdfStream = new ByteArrayOutputStream();
// exports report to pdf
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, pdfStream); // your output goes here
exporter.exportReport();
} catch (Exception e) {
throw new RuntimeException("It's not possible to generate the pdf report.", e);
} finally {
render(file: pdfStream.toByteArray(), contentType: 'application/pdf')
}
}
}