1 28 import java.io.File ; 29 import java.util.HashMap ; 30 import java.util.Map ; 31 32 import net.sf.jasperreports.engine.JREmptyDataSource; 33 import net.sf.jasperreports.engine.JRException; 34 import net.sf.jasperreports.engine.JRExporterParameter; 35 import net.sf.jasperreports.engine.JasperExportManager; 36 import net.sf.jasperreports.engine.JasperFillManager; 37 import net.sf.jasperreports.engine.JasperPrint; 38 import net.sf.jasperreports.engine.JasperPrintManager; 39 import net.sf.jasperreports.engine.JasperRunManager; 40 import net.sf.jasperreports.engine.export.JExcelApiExporter; 41 import net.sf.jasperreports.engine.export.JRCsvExporter; 42 import net.sf.jasperreports.engine.export.JRRtfExporter; 43 import net.sf.jasperreports.engine.export.JRXlsExporter; 44 import net.sf.jasperreports.engine.export.JRXlsExporterParameter; 45 import net.sf.jasperreports.engine.util.JRLoader; 46 47 48 52 public class UnicodeApp 53 { 54 55 56 59 private static final String TASK_FILL = "fill"; 60 private static final String TASK_PRINT = "print"; 61 private static final String TASK_PDF = "pdf"; 62 private static final String TASK_XML = "xml"; 63 private static final String TASK_XML_EMBED = "xmlEmbed"; 64 private static final String TASK_HTML = "html"; 65 private static final String TASK_RTF = "rtf"; 66 private static final String TASK_XLS = "xls"; 67 private static final String TASK_JXL = "jxl"; 68 private static final String TASK_CSV = "csv"; 69 private static final String TASK_RUN = "run"; 70 71 72 75 public static void main(String [] args) 76 { 77 String fileName = null; 78 String taskName = null; 79 80 if(args.length == 0) 81 { 82 usage(); 83 return; 84 } 85 86 int k = 0; 87 while ( args.length > k ) 88 { 89 if ( args[k].startsWith("-T") ) 90 taskName = args[k].substring(2); 91 if ( args[k].startsWith("-F") ) 92 fileName = args[k].substring(2); 93 94 k++; 95 } 96 97 try 98 { 99 long start = System.currentTimeMillis(); 100 if (TASK_FILL.equals(taskName)) 101 { 102 Map parameters = new HashMap (); 103 parameters.put("GreekText", "\u0393 \u0394 \u0398 \u039B \u039E \u03A0 \u03A3 \u03A6 \u03A8 \u03A9"); 104 parameters.put("CyrillicText", "\u0402 \u040B \u040F \u0414 \u0416 \u0418 \u041B \u0426 \u0429 \u042E"); 105 parameters.put("ArabicText", "\u0647\u0630\u0627 \u0639\u0631\u0636 \u0644\u0645\u062C\u0645\u0648\u0639\u0629 TextLayout"); 106 parameters.put("HebrewText", "\u05D0\u05E0\u05D9 \u05DC\u05D0 \u05DE\u05D1\u05D9\u05DF \u05E2\u05D1\u05E8\u05D9\u05EA"); 107 108 JasperFillManager.fillReportToFile(fileName, parameters, new JREmptyDataSource()); 109 System.err.println("Filling time : " + (System.currentTimeMillis() - start)); 110 System.exit(0); 111 } 112 else if (TASK_PRINT.equals(taskName)) 113 { 114 JasperPrintManager.printReport(fileName, true); 115 System.err.println("Printing time : " + (System.currentTimeMillis() - start)); 116 System.exit(0); 117 } 118 else if (TASK_PDF.equals(taskName)) 119 { 120 JasperExportManager.exportReportToPdfFile(fileName); 121 System.err.println("PDF creation time : " + (System.currentTimeMillis() - start)); 122 System.exit(0); 123 } 124 else if (TASK_RTF.equals(taskName)) 125 { 126 File sourceFile = new File (fileName); 127 128 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 129 130 File destFile = new File (sourceFile.getParent(), jasperPrint.getName() + ".rtf"); 131 132 JRRtfExporter exporter = new JRRtfExporter(); 133 134 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 135 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString()); 136 137 exporter.exportReport(); 138 139 System.err.println("RTF creation time : " + (System.currentTimeMillis() - start)); 140 System.exit(0); 141 } 142 else if (TASK_XML.equals(taskName)) 143 { 144 JasperExportManager.exportReportToXmlFile(fileName, false); 145 System.err.println("XML creation time : " + (System.currentTimeMillis() - start)); 146 System.exit(0); 147 } 148 else if (TASK_XML_EMBED.equals(taskName)) 149 { 150 JasperExportManager.exportReportToXmlFile(fileName, true); 151 System.err.println("XML creation time : " + (System.currentTimeMillis() - start)); 152 System.exit(0); 153 } 154 else if (TASK_HTML.equals(taskName)) 155 { 156 JasperExportManager.exportReportToHtmlFile(fileName); 157 System.err.println("HTML creation time : " + (System.currentTimeMillis() - start)); 158 System.exit(0); 159 } 160 else if (TASK_XLS.equals(taskName)) 161 { 162 File sourceFile = new File (fileName); 163 164 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 165 166 File destFile = new File (sourceFile.getParent(), jasperPrint.getName() + ".xls"); 167 168 JRXlsExporter exporter = new JRXlsExporter(); 169 170 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 171 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString()); 172 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE); 173 174 exporter.exportReport(); 175 176 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start)); 177 System.exit(0); 178 } 179 else if (TASK_JXL.equals(taskName)) 180 { 181 File sourceFile = new File (fileName); 182 183 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 184 185 File destFile = new File (sourceFile.getParent(), jasperPrint.getName() + ".jxl.xls"); 186 187 JExcelApiExporter exporter = new JExcelApiExporter(); 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 193 exporter.exportReport(); 194 195 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start)); 196 System.exit(0); 197 } 198 else if (TASK_CSV.equals(taskName)) 199 { 200 File sourceFile = new File (fileName); 201 202 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 203 204 File destFile = new File (sourceFile.getParent(), jasperPrint.getName() + ".csv"); 205 206 JRCsvExporter exporter = new JRCsvExporter(); 207 208 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 209 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString()); 210 exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8"); 211 212 exporter.exportReport(); 213 214 System.err.println("CSV creation time : " + (System.currentTimeMillis() - start)); 215 System.exit(0); 216 } 217 else if (TASK_RUN.equals(taskName)) 218 { 219 Map parameters = new HashMap (); 220 parameters.put("GreekText", "\u0393 \u0394 \u0398 \u039B \u039E \u03A0 \u03A3 \u03A6 \u03A8 \u03A9"); 221 parameters.put("CyrillicText", "\u0402 \u040B \u040F \u0414 \u0416 \u0418 \u041B \u0426 \u0429 \u042E"); 222 parameters.put("ArabicText", "\u0647\u0630\u0627 \u0639\u0631\u0636 \u0644\u0645\u062C\u0645\u0648\u0639\u0629 TextLayout"); 223 parameters.put("HebrewText", "\u05D0\u05E0\u05D9 \u05DC\u05D0 \u05DE\u05D1\u05D9\u05DF \u05E2\u05D1\u05E8\u05D9\u05EA"); 224 225 JasperRunManager.runReportToPdfFile(fileName, parameters, new JREmptyDataSource()); 226 System.err.println("PDF running time : " + (System.currentTimeMillis() - start)); 227 System.exit(0); 228 } 229 else 230 { 231 usage(); 232 System.exit(0); 233 } 234 } 235 catch (JRException e) 236 { 237 e.printStackTrace(); 238 System.exit(1); 239 } 240 catch (Exception e) 241 { 242 e.printStackTrace(); 243 System.exit(1); 244 } 245 } 246 247 248 251 private static void usage() 252 { 253 System.out.println( "UnicodeApp usage:" ); 254 System.out.println( "\tjava UnicodeApp -Ttask -Ffile" ); 255 System.out.println( "\tTasks : fill | print | pdf | xml | xmlEmbed | html | rtf | xls | jxl | csv | run" ); 256 } 257 258 259 } 260 | Popular Tags |