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