KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > FontsApp


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.io.File JavaDoc;
29 import java.util.HashMap JavaDoc;
30
31 import net.sf.jasperreports.engine.JREmptyDataSource;
32 import net.sf.jasperreports.engine.JRException;
33 import net.sf.jasperreports.engine.JRExporterParameter;
34 import net.sf.jasperreports.engine.JasperExportManager;
35 import net.sf.jasperreports.engine.JasperFillManager;
36 import net.sf.jasperreports.engine.JasperPrint;
37 import net.sf.jasperreports.engine.JasperPrintManager;
38 import net.sf.jasperreports.engine.JasperRunManager;
39 import net.sf.jasperreports.engine.export.JExcelApiExporter;
40 import net.sf.jasperreports.engine.export.JRCsvExporter;
41 import net.sf.jasperreports.engine.export.JRRtfExporter;
42 import net.sf.jasperreports.engine.export.JRXlsExporter;
43 import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
44 import net.sf.jasperreports.engine.export.JRHtmlExporter;
45 import net.sf.jasperreports.engine.export.JRPdfExporter;
46 import net.sf.jasperreports.engine.export.FontKey;
47 import net.sf.jasperreports.engine.export.PdfFont;
48 import net.sf.jasperreports.engine.util.JRLoader;
49
50
51 /**
52  * @author Teodor Danciu (teodord@users.sourceforge.net)
53  * @version $Id: FontsApp.java 1229 2006-04-19 13:27:35 +0300 (Wed, 19 Apr 2006) teodord $
54  */

55 public class FontsApp
56 {
57
58
59     /**
60      *
61      */

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

78     public static void main(String JavaDoc[] args)
79     {
80         String JavaDoc fileName = null;
81         String JavaDoc taskName = null;
82
83         if(args.length == 0)
84         {
85             usage();
86             return;
87         }
88                 
89         int k = 0;
90         while ( args.length > k )
91         {
92             if ( args[k].startsWith("-T") )
93                 taskName = args[k].substring(2);
94             if ( args[k].startsWith("-F") )
95                 fileName = args[k].substring(2);
96             
97             k++;
98         }
99
100         try
101         {
102             long start = System.currentTimeMillis();
103             if (TASK_FILL.equals(taskName))
104             {
105                 JasperFillManager.fillReportToFile(fileName, null, new JREmptyDataSource());
106                 System.err.println("Filling time : " + (System.currentTimeMillis() - start));
107                 System.exit(0);
108             }
109             else if (TASK_PRINT.equals(taskName))
110             {
111                 JasperPrintManager.printReport(fileName, true);
112                 System.err.println("Printing time : " + (System.currentTimeMillis() - start));
113                 System.exit(0);
114             }
115             else if (TASK_PDF.equals(taskName))
116             {
117                 File JavaDoc sourceFile = new File JavaDoc(fileName);
118
119                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
120
121                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".pdf");
122
123                 JRPdfExporter exporter = new JRPdfExporter();
124
125                 HashMap JavaDoc fontMap = new HashMap JavaDoc();
126                 FontKey key = new FontKey("Comic Sans MS", true, false);
127                 PdfFont font = new PdfFont("COMICBD.TTF", "Cp1252", true);
128                 fontMap.put(key, font);
129
130                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
131                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
132                 exporter.setParameter(JRExporterParameter.FONT_MAP, fontMap);
133
134                 exporter.exportReport();
135
136                 System.err.println("PDF creation time : " + (System.currentTimeMillis() - start));
137                 System.exit(0);
138             }
139             else if (TASK_XML.equals(taskName))
140             {
141                 JasperExportManager.exportReportToXmlFile(fileName, false);
142                 System.err.println("XML creation time : " + (System.currentTimeMillis() - start));
143                 System.exit(0);
144             }
145             else if (TASK_XML_EMBED.equals(taskName))
146             {
147                 JasperExportManager.exportReportToXmlFile(fileName, true);
148                 System.err.println("XML creation time : " + (System.currentTimeMillis() - start));
149                 System.exit(0);
150             }
151             else if (TASK_HTML.equals(taskName))
152             {
153                 File JavaDoc sourceFile = new File JavaDoc(fileName);
154
155                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
156
157                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".html");
158
159                 JRHtmlExporter exporter = new JRHtmlExporter();
160
161                 HashMap JavaDoc fontMap = new HashMap JavaDoc();
162                 fontMap.put("sansserif", "Arial, Verdana, Tahoma");
163                 fontMap.put("serif", "Times New Roman");
164                 fontMap.put("monospaced", "Courier, Courier New");
165
166                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
167                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
168                 exporter.setParameter(JRExporterParameter.FONT_MAP, fontMap);
169
170                 exporter.exportReport();
171
172                 System.err.println("HTML creation time : " + (System.currentTimeMillis() - start));
173                 System.exit(0);
174             }
175             else if (TASK_RTF.equals(taskName))
176             {
177                 File JavaDoc sourceFile = new File JavaDoc(fileName);
178         
179                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
180         
181                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".rtf");
182                 
183                 HashMap JavaDoc fontMap = new HashMap JavaDoc();
184                 fontMap.put("sansserif", "Arial");
185                 fontMap.put("serif", "Times New Roman");
186                 fontMap.put("monospaced", "Courier");
187
188                 JRRtfExporter exporter = new JRRtfExporter();
189                 
190                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
191                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
192                 exporter.setParameter(JRExporterParameter.FONT_MAP, fontMap);
193                 
194                 exporter.exportReport();
195
196                 System.err.println("RTF creation time : " + (System.currentTimeMillis() - start));
197                 System.exit(0);
198             }
199             else if (TASK_XLS.equals(taskName))
200             {
201                 File JavaDoc sourceFile = new File JavaDoc(fileName);
202         
203                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
204         
205                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".xls");
206                 
207                 JRXlsExporter exporter = new JRXlsExporter();
208                 
209                 HashMap JavaDoc fontMap = new HashMap JavaDoc();
210                 fontMap.put("sansserif", "Arial");
211                 fontMap.put("serif", "Times New Roman");
212                 fontMap.put("monospaced", "Courier");
213
214                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
215                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
216                 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
217                 exporter.setParameter(JRExporterParameter.FONT_MAP, fontMap);
218
219                 exporter.exportReport();
220
221                 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start));
222                 System.exit(0);
223             }
224             else if (TASK_JXL.equals(taskName))
225             {
226                 File JavaDoc sourceFile = new File JavaDoc(fileName);
227
228                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
229
230                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".jxl.xls");
231
232                 JExcelApiExporter exporter = new JExcelApiExporter();
233
234                 HashMap JavaDoc fontMap = new HashMap JavaDoc();
235                 fontMap.put("sansserif", "Arial");
236                 fontMap.put("serif", "Times New Roman");
237                 fontMap.put("monospaced", "Courier");
238
239                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
240                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
241                 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
242                 exporter.setParameter(JRExporterParameter.FONT_MAP, fontMap);
243
244                 exporter.exportReport();
245
246                 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start));
247                 System.exit(0);
248             }
249             else if (TASK_CSV.equals(taskName))
250             {
251                 File JavaDoc sourceFile = new File JavaDoc(fileName);
252         
253                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
254         
255                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".csv");
256                 
257                 JRCsvExporter exporter = new JRCsvExporter();
258                 
259                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
260                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
261                 
262                 exporter.exportReport();
263
264                 System.err.println("CSV creation time : " + (System.currentTimeMillis() - start));
265                 System.exit(0);
266             }
267             else if (TASK_RUN.equals(taskName))
268             {
269                 JasperRunManager.runReportToPdfFile(fileName, null, new JREmptyDataSource());
270                 System.err.println("PDF running time : " + (System.currentTimeMillis() - start));
271                 System.exit(0);
272             }
273             else
274             {
275                 usage();
276                 System.exit(0);
277             }
278         }
279         catch (JRException e)
280         {
281             e.printStackTrace();
282             System.exit(1);
283         }
284         catch (Exception JavaDoc e)
285         {
286             e.printStackTrace();
287             System.exit(1);
288         }
289     }
290
291
292     /**
293      *
294      */

295     private static void usage()
296     {
297         System.out.println( "FontsApp usage:" );
298         System.out.println( "\tjava FontsApp -Ttask -Ffile" );
299         System.out.println( "\tTasks : fill | print | pdf | xml | xmlEmbed | html | rtf | xls | jxl | csv | run" );
300     }
301
302
303 }
304
Popular Tags