1 28 import java.io.File ; 29 import java.io.FileNotFoundException ; 30 import java.io.IOException ; 31 import java.util.HashMap ; 32 import java.util.HashSet ; 33 import java.util.Map ; 34 import java.util.Set ; 35 import java.util.Vector ; 36 37 import net.sf.jasperreports.engine.JRException; 38 import net.sf.jasperreports.engine.JRExporterParameter; 39 import net.sf.jasperreports.engine.JasperExportManager; 40 import net.sf.jasperreports.engine.JasperFillManager; 41 import net.sf.jasperreports.engine.JasperPrint; 42 import net.sf.jasperreports.engine.JasperPrintManager; 43 import net.sf.jasperreports.engine.JasperRunManager; 44 import net.sf.jasperreports.engine.data.JRBeanArrayDataSource; 45 import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; 46 import net.sf.jasperreports.engine.data.JRTableModelDataSource; 47 import net.sf.jasperreports.engine.data.JRCsvDataSource; 48 import net.sf.jasperreports.engine.export.JExcelApiExporter; 49 import net.sf.jasperreports.engine.export.JRCsvExporter; 50 import net.sf.jasperreports.engine.export.JRRtfExporter; 51 import net.sf.jasperreports.engine.export.JRXlsExporter; 52 import net.sf.jasperreports.engine.export.JRXlsExporterParameter; 53 import net.sf.jasperreports.engine.util.JRLoader; 54 55 56 60 public class CsvDataSourceApp 61 { 62 63 64 67 private static final String TASK_FILL = "fill"; 68 private static final String TASK_PRINT = "print"; 69 private static final String TASK_PDF = "pdf"; 70 private static final String TASK_XML = "xml"; 71 private static final String TASK_XML_EMBED = "xmlEmbed"; 72 private static final String TASK_HTML = "html"; 73 private static final String TASK_RTF = "rtf"; 74 private static final String TASK_XLS = "xls"; 75 private static final String TASK_JXL = "jxl"; 76 private static final String TASK_CSV = "csv"; 77 private static final String TASK_RUN = "run"; 78 79 80 83 public static void main(String [] args) 84 { 85 String fileName = null; 86 String taskName = null; 87 88 if(args.length == 0) 89 { 90 usage(); 91 return; 92 } 93 94 int k = 0; 95 while ( args.length > k ) 96 { 97 if ( args[k].startsWith("-T") ) 98 taskName = args[k].substring(2); 99 if ( args[k].startsWith("-F") ) 100 fileName = args[k].substring(2); 101 102 k++; 103 } 104 105 try 106 { 107 long start = System.currentTimeMillis(); 108 if (TASK_FILL.equals(taskName)) 109 { 110 Map parameters = new HashMap (); 112 parameters.put("ReportTitle", "Address Report"); 113 parameters.put("DataFile", "CsvDataSource.txt - CSV data source"); 114 Set states = new HashSet (); 115 states.add("Active"); 116 states.add("Trial"); 117 parameters.put("IncludedStates", states); 118 119 JasperFillManager.fillReportToFile(fileName, parameters, getDataSource()); 120 System.err.println("Filling time : " + (System.currentTimeMillis() - start)); 121 System.exit(0); 122 } 123 else if (TASK_PRINT.equals(taskName)) 124 { 125 JasperPrintManager.printReport(fileName, true); 126 System.err.println("Printing time : " + (System.currentTimeMillis() - start)); 127 System.exit(0); 128 } 129 else if (TASK_PDF.equals(taskName)) 130 { 131 JasperExportManager.exportReportToPdfFile(fileName); 132 System.err.println("PDF creation time : " + (System.currentTimeMillis() - start)); 133 System.exit(0); 134 } 135 else if (TASK_XML.equals(taskName)) 136 { 137 JasperExportManager.exportReportToXmlFile(fileName, false); 138 System.err.println("XML creation time : " + (System.currentTimeMillis() - start)); 139 System.exit(0); 140 } 141 else if (TASK_XML_EMBED.equals(taskName)) 142 { 143 JasperExportManager.exportReportToXmlFile(fileName, true); 144 System.err.println("XML creation time : " + (System.currentTimeMillis() - start)); 145 System.exit(0); 146 } 147 else if (TASK_HTML.equals(taskName)) 148 { 149 JasperExportManager.exportReportToHtmlFile(fileName); 150 System.err.println("HTML creation time : " + (System.currentTimeMillis() - start)); 151 System.exit(0); 152 } 153 else if (TASK_RTF.equals(taskName)) 154 { 155 File sourceFile = new File (fileName); 156 157 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 158 159 File destFile = new File (sourceFile.getParent(), jasperPrint.getName() + ".rtf"); 160 161 JRRtfExporter exporter = new JRRtfExporter(); 162 163 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 164 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString()); 165 166 exporter.exportReport(); 167 168 System.err.println("RTF creation time : " + (System.currentTimeMillis() - start)); 169 System.exit(0); 170 } 171 else if (TASK_XLS.equals(taskName)) 172 { 173 File sourceFile = new File (fileName); 174 175 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 176 177 File destFile = new File (sourceFile.getParent(), jasperPrint.getName() + ".xls"); 178 179 JRXlsExporter exporter = new JRXlsExporter(); 180 181 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 182 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString()); 183 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE); 184 185 exporter.exportReport(); 186 187 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start)); 188 System.exit(0); 189 } 190 else if (TASK_JXL.equals(taskName)) 191 { 192 File sourceFile = new File (fileName); 193 194 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 195 196 File destFile = new File (sourceFile.getParent(), jasperPrint.getName() + ".jxl.xls"); 197 198 JExcelApiExporter exporter = new JExcelApiExporter(); 199 200 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 201 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString()); 202 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE); 203 204 exporter.exportReport(); 205 206 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start)); 207 System.exit(0); 208 } 209 else if (TASK_CSV.equals(taskName)) 210 { 211 File sourceFile = new File (fileName); 212 213 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 214 215 File destFile = new File (sourceFile.getParent(), jasperPrint.getName() + ".csv"); 216 217 JRCsvExporter exporter = new JRCsvExporter(); 218 219 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 220 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString()); 221 222 exporter.exportReport(); 223 224 System.err.println("CSV creation time : " + (System.currentTimeMillis() - start)); 225 System.exit(0); 226 } 227 else if (TASK_RUN.equals(taskName)) 228 { 229 Map parameters = new HashMap (); 231 parameters.put("ReportTitle", "Address Report"); 232 Set states = new HashSet (); 233 states.add("Active"); 234 states.add("Trial"); 235 parameters.put("IncludedStates", states); 236 237 JasperRunManager.runReportToPdfFile(fileName, parameters, getDataSource()); 238 System.err.println("PDF running time : " + (System.currentTimeMillis() - start)); 239 System.exit(0); 240 } 241 else 242 { 243 usage(); 244 System.exit(0); 245 } 246 } 247 catch (JRException e) 248 { 249 e.printStackTrace(); 250 System.exit(1); 251 } 252 catch (Exception e) 253 { 254 e.printStackTrace(); 255 System.exit(1); 256 } 257 } 258 259 260 263 private static JRCsvDataSource getDataSource() throws IOException 264 { 265 String [] columnNames = new String []{"city", "id", "name", "address", "state"}; 266 JRCsvDataSource ds = new JRCsvDataSource(new File ("CsvDataSource.txt")); 267 ds.setRecordDelimiter("\r\n"); 268 ds.setColumnNames(columnNames); 270 return ds; 271 } 272 273 274 277 private static void usage() 278 { 279 System.out.println( "CsvDataSourceApp usage:" ); 280 System.out.println( "\tjava CsvDataSourceApp -Ttask -Ffile" ); 281 System.out.println( "\tTasks : fill | print | pdf | xml | xmlEmbed | html | rtf | xls | jxl | csv | run" ); 282 } 283 284 285 } 286 | Popular Tags |