KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > JasperApp


1 /*
2  * ============================================================================
3  * GNU Lesser General Public License
4  * ============================================================================
5  *
6  * JasperReports - Free Java report-generating library.
7  * Copyright (C) 2001-2006 JasperSoft Corporation http://www.jaspersoft.com
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
22  *
23  * JasperSoft Corporation
24  * 303 Second Street, Suite 450 North
25  * San Francisco, CA 94107
26  * http://www.jaspersoft.com
27  */

28 import java.awt.Image JavaDoc;
29 import java.awt.MediaTracker JavaDoc;
30 import java.awt.Panel JavaDoc;
31 import java.awt.Toolkit JavaDoc;
32 import java.io.File JavaDoc;
33 import java.sql.Connection JavaDoc;
34 import java.sql.DriverManager JavaDoc;
35 import java.sql.SQLException JavaDoc;
36 import java.util.HashMap JavaDoc;
37 import java.util.Locale JavaDoc;
38 import java.util.Map JavaDoc;
39
40 import net.sf.jasperreports.engine.JRException;
41 import net.sf.jasperreports.engine.JRExporterParameter;
42 import net.sf.jasperreports.engine.JasperExportManager;
43 import net.sf.jasperreports.engine.JasperFillManager;
44 import net.sf.jasperreports.engine.JasperPrint;
45 import net.sf.jasperreports.engine.JasperPrintManager;
46 import net.sf.jasperreports.engine.JasperRunManager;
47 import net.sf.jasperreports.engine.export.JExcelApiExporter;
48 import net.sf.jasperreports.engine.export.JRCsvExporter;
49 import net.sf.jasperreports.engine.export.JRRtfExporter;
50 import net.sf.jasperreports.engine.export.JRXlsExporter;
51 import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
52 import net.sf.jasperreports.engine.util.JRLoader;
53
54
55 /**
56  * @author Teodor Danciu (teodord@users.sourceforge.net)
57  * @version $Id: JasperApp.java 1481 2006-11-10 18:50:28 +0200 (Fri, 10 Nov 2006) shertage $
58  */

59 public class JasperApp
60 {
61
62
63     /**
64      *
65      */

66     private static final String JavaDoc TASK_FILL = "fill";
67     private static final String JavaDoc TASK_PRINT = "print";
68     private static final String JavaDoc TASK_PDF = "pdf";
69     private static final String JavaDoc TASK_XML = "xml";
70     private static final String JavaDoc TASK_XML_EMBED = "xmlEmbed";
71     private static final String JavaDoc TASK_HTML = "html";
72     private static final String JavaDoc TASK_RTF = "rtf";
73     private static final String JavaDoc TASK_XLS = "xls";
74     private static final String JavaDoc TASK_JXL = "jxl";
75     private static final String JavaDoc TASK_CSV = "csv";
76     private static final String JavaDoc TASK_RUN = "run";
77     
78     
79     /**
80      *
81      */

82     public static void main(String JavaDoc[] args)
83     {
84         String JavaDoc fileName = null;
85         String JavaDoc taskName = null;
86
87         if(args.length == 0)
88         {
89             usage();
90             return;
91         }
92                 
93         int k = 0;
94         while ( args.length > k )
95         {
96             if ( args[k].startsWith("-T") )
97                 taskName = args[k].substring(2);
98             if ( args[k].startsWith("-F") )
99                 fileName = args[k].substring(2);
100             
101             k++;
102         }
103
104         try
105         {
106             long start = System.currentTimeMillis();
107             if (TASK_FILL.equals(taskName))
108             {
109                 //Preparing parameters
110
Image JavaDoc image = Toolkit.getDefaultToolkit().createImage("dukesign.jpg");
111                 MediaTracker JavaDoc traker = new MediaTracker JavaDoc(new Panel JavaDoc());
112                 traker.addImage(image, 0);
113                 try
114                 {
115                     traker.waitForID(0);
116                 }
117                 catch (Exception JavaDoc e)
118                 {
119                     e.printStackTrace();
120                 }
121                 
122                 Map JavaDoc parameters = new HashMap JavaDoc();
123                 parameters.put("ReportTitle", "The First Jasper Report Ever");
124                 parameters.put("MaxOrderID", new Integer JavaDoc(10500));
125                 parameters.put("SummaryImage", image);
126                 
127                 JasperFillManager.fillReportToFile(fileName, parameters, getConnection());
128                 System.err.println("Filling time : " + (System.currentTimeMillis() - start));
129                 System.exit(0);
130             }
131             else if (TASK_PRINT.equals(taskName))
132             {
133                 JasperPrintManager.printReport(fileName, true);
134                 System.err.println("Printing time : " + (System.currentTimeMillis() - start));
135                 System.exit(0);
136             }
137             else if (TASK_PDF.equals(taskName))
138             {
139                 JasperExportManager.exportReportToPdfFile(fileName);
140                 System.err.println("PDF creation time : " + (System.currentTimeMillis() - start));
141                 System.exit(0);
142             }
143             else if (TASK_XML.equals(taskName))
144             {
145                 JasperExportManager.exportReportToXmlFile(fileName, false);
146                 System.err.println("XML creation time : " + (System.currentTimeMillis() - start));
147                 System.exit(0);
148             }
149             else if (TASK_XML_EMBED.equals(taskName))
150             {
151                 JasperExportManager.exportReportToXmlFile(fileName, true);
152                 System.err.println("XML creation time : " + (System.currentTimeMillis() - start));
153                 System.exit(0);
154             }
155             else if (TASK_HTML.equals(taskName))
156             {
157                 JasperExportManager.exportReportToHtmlFile(fileName);
158                 System.err.println("HTML creation time : " + (System.currentTimeMillis() - start));
159                 System.exit(0);
160             }
161             else if (TASK_RTF.equals(taskName))
162             {
163                 File JavaDoc sourceFile = new File JavaDoc(fileName);
164         
165                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
166         
167                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".rtf");
168                 
169                 JRRtfExporter exporter = new JRRtfExporter();
170                 
171                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
172                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
173                 
174                 exporter.exportReport();
175
176                 System.err.println("RTF creation time : " + (System.currentTimeMillis() - start));
177                 System.exit(0);
178             }
179             else if (TASK_XLS.equals(taskName))
180             {
181                 File JavaDoc sourceFile = new File JavaDoc(fileName);
182                 Map JavaDoc dateFormats = new HashMap JavaDoc();
183                 dateFormats.put("EEE, MMM d, yyyy", "ddd, mmm d, yyyy");
184                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
185                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".xls");
186                 
187                 JRXlsExporter exporter = new JRXlsExporter();
188                 
189                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
190                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
191                 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
192                 exporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
193                 exporter.setParameter(JRXlsExporterParameter.FORMAT_PATTERNS_MAP, dateFormats);
194                 
195                 exporter.exportReport();
196
197                 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start));
198                 System.exit(0);
199             }
200             else if (TASK_JXL.equals(taskName))
201             {
202                 File JavaDoc sourceFile = new File JavaDoc(fileName);
203
204                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
205
206                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".jxl.xls");
207
208                 JExcelApiExporter exporter = new JExcelApiExporter();
209
210                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
211                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
212                 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
213
214                 exporter.exportReport();
215
216                 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start));
217                 System.exit(0);
218             }
219             else if (TASK_CSV.equals(taskName))
220             {
221                 File JavaDoc sourceFile = new File JavaDoc(fileName);
222         
223                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
224         
225                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".csv");
226                 
227                 JRCsvExporter exporter = new JRCsvExporter();
228                 
229                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
230                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
231                 
232                 exporter.exportReport();
233
234                 System.err.println("CSV creation time : " + (System.currentTimeMillis() - start));
235                 System.exit(0);
236             }
237             else if (TASK_RUN.equals(taskName))
238             {
239                 //Preparing parameters
240
Image JavaDoc image = Toolkit.getDefaultToolkit().createImage("dukesign.jpg");
241                 MediaTracker JavaDoc traker = new MediaTracker JavaDoc(new Panel JavaDoc());
242                 traker.addImage(image, 0);
243                 try
244                 {
245                     traker.waitForID(0);
246                 }
247                 catch (Exception JavaDoc e)
248                 {
249                     e.printStackTrace();
250                 }
251                 
252                 Map JavaDoc parameters = new HashMap JavaDoc();
253                 parameters.put("ReportTitle", "The First Jasper Report Ever");
254                 parameters.put("MaxOrderID", new Integer JavaDoc(10500));
255                 parameters.put("SummaryImage", image);
256                 
257                 JasperRunManager.runReportToPdfFile(fileName, parameters, getConnection());
258                 System.err.println("PDF running time : " + (System.currentTimeMillis() - start));
259                 System.exit(0);
260             }
261             else
262             {
263                 usage();
264                 System.exit(0);
265             }
266         }
267         catch (JRException e)
268         {
269             e.printStackTrace();
270             System.exit(1);
271         }
272         catch (Exception JavaDoc e)
273         {
274             e.printStackTrace();
275             System.exit(1);
276         }
277     }
278
279
280     /**
281      *
282      */

283     private static void usage()
284     {
285         System.out.println( "JasperApp usage:" );
286         System.out.println( "\tjava JasperApp -Ttask -Ffile" );
287         System.out.println( "\tTasks : fill | print | pdf | xml | xmlEmbed | html | rtf | xls | jxl | csv | run" );
288     }
289
290
291     /**
292      *
293      */

294     private static Connection JavaDoc getConnection() throws ClassNotFoundException JavaDoc, SQLException JavaDoc
295     {
296         //Change these settings according to your local configuration
297
String JavaDoc driver = "org.hsqldb.jdbcDriver";
298         String JavaDoc connectString = "jdbc:hsqldb:hsql://localhost";
299         String JavaDoc user = "sa";
300         String JavaDoc password = "";
301
302
303         Class.forName(driver);
304         Connection JavaDoc conn = DriverManager.getConnection(connectString, user, password);
305         return conn;
306     }
307
308
309 }
310
Popular Tags