Monday 10 March 2014

Jasper Reports Simple PDF Generator Application

Exception while creating PDF in Jasper Report

while creating the Jasper report I got the Problem like

Problem:

 
java.lang.NoSuchFieldError: APPDEFAULT at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:534) [jasperreports-5.1.2.jar:5.1.2]
 

Solution:

I added the iText 2.1.7 jar and again recompliled its working fine
 
Jar Files I used in the Application
 
commons-beanutils-1.7.0
commons-collections-3.1
commons-digetser-1.8
commons-lang-2.1
commons-logging-1.1.1
itext-1.3.1 --> Later Changed to itext-2.1.7
jasperreports-5.1.0
ojdbc14
itextpdf-5.3.0
 

Java File

package com.report;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JRViewer;
import net.sf.jasperreports.view.JasperViewer;
public class ReportGenerator {
Connection conn;
public void generateReport() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","hr","hr");
System.out.println("Loading Report Designs");
InputStream input = new FileInputStream(new File("jrxml/EmployeeReport.jrxml"));
JasperDesign jasperDesign = JRXmlLoader.load(input);
System.out.println("Compiling Report Designs");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
System.out.println("Creating JasperPrint Object");
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("ReportTitle", "PDF JasperReport");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null,conn);
 


//Exporting the report
OutputStream output = new FileOutputStream(new File("report/EmployeeReport.pdf"));
JasperExportManager.exportReportToPdfStream(jasperPrint, output);
//JasperExportManager.exportToPdfFile(jasperPrint, output);
JasperViewer.viewReport(jasperPrint);
System.out.println("Report Generation Complete");
conn.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (JRException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new ReportGenerator().generateReport();
}
}


No comments:

Post a Comment