[20968] improvement: add support for export as XHTML and DOCX

Sigurd Nes <[email protected]> Sun, 17 Jan 2010 12:14:10 +0000
Newsgroups gmane.comp.web.phpgroupware.cvs
Message-ID <[email protected]>
Revision: 20968
          http://svn.sv.gnu.org/viewvc/?view=rev&root=phpgroupware&revision=20968
Author:   sigurdne
Date:     2010-01-17 12:14:09 +0000 (Sun, 17 Jan 2010)
Log Message:
-----------
improvement: add support for export as XHTML and DOCX

Modified Paths:
--------------
    people/sigurdne/modules/phpgwapi/trunk/inc/jasper/bin/CustomJasperReport.class
    people/sigurdne/modules/phpgwapi/trunk/inc/jasper/bin/JasperEngine.class
    people/sigurdne/modules/phpgwapi/trunk/inc/jasper/src/CustomJasperReport.java
    people/sigurdne/modules/phpgwapi/trunk/inc/jasper/src/JasperEngine.java

Modified: people/sigurdne/modules/phpgwapi/trunk/inc/jasper/bin/CustomJasperReport.class
===================================================================
(Binary files differ)

Modified: people/sigurdne/modules/phpgwapi/trunk/inc/jasper/bin/JasperEngine.class
===================================================================
(Binary files differ)

Modified: people/sigurdne/modules/phpgwapi/trunk/inc/jasper/src/CustomJasperReport.java
===================================================================
--- people/sigurdne/modules/phpgwapi/trunk/inc/jasper/src/CustomJasperReport.java	2010-01-14 17:07:16 UTC (rev 20967)
+++ people/sigurdne/modules/phpgwapi/trunk/inc/jasper/src/CustomJasperReport.java	2010-01-17 12:14:09 UTC (rev 20968)
@@ -16,6 +16,8 @@
 import net.sf.jasperreports.engine.export.JRPdfExporter;
 import net.sf.jasperreports.engine.export.JRXlsExporter;
 import net.sf.jasperreports.engine.export.JRXlsAbstractExporterParameter;
+import net.sf.jasperreports.engine.export.JRXhtmlExporter;
+import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;
 
 class CustomJasperReport {
 
@@ -155,6 +157,45 @@
 		}
 	}
 
+	public void generateXhtml() {
+
+		if (this.jasperPrint == null){
+			System.exit(203);
+		}
+
+		JRXhtmlExporter xhtmlexp = new JRXhtmlExporter();
+		xhtmlexp.setParameter(JRExporterParameter.JASPER_PRINT, this.jasperPrint);
+		xhtmlexp.setParameter(JRExporterParameter.OUTPUT_STREAM, System.out);
+		
+		try {
+			xhtmlexp.exportReport();
+		} catch (JRException e) {
+//			System.err.println("Unable to generate XHTML file for report: "
+//					+ this.name);
+			System.exit(218);
+		}
+	}
+
+	public void generateDocx() {
+
+		if (this.jasperPrint == null){
+			System.exit(203);
+		}
+
+		JRDocxExporter docxexp = new JRDocxExporter();
+		docxexp.setParameter(JRExporterParameter.JASPER_PRINT, this.jasperPrint);
+		docxexp.setParameter(JRExporterParameter.OUTPUT_STREAM, System.out);
+		
+		try {
+			docxexp.exportReport();
+		} catch (JRException e) {
+//			System.err.println("Unable to generate DOCX file for report: "
+//					+ this.name);
+			System.exit(219);
+		}
+	}
+
+
 	public String getName() {
 		return this.name;
 	}

Modified: people/sigurdne/modules/phpgwapi/trunk/inc/jasper/src/JasperEngine.java
===================================================================
--- people/sigurdne/modules/phpgwapi/trunk/inc/jasper/src/JasperEngine.java	2010-01-14 17:07:16 UTC (rev 20967)
+++ people/sigurdne/modules/phpgwapi/trunk/inc/jasper/src/JasperEngine.java	2010-01-17 12:14:09 UTC (rev 20968)
@@ -48,6 +48,10 @@
 					output_type = 1;
 				} else if (args[i + 1].equals("XLS")) {
 					output_type = 2;
+				} else if (args[i + 1].equals("XHTML")) {
+					output_type = 3;
+				} else if (args[i + 1].equals("DOCX")) {
+					output_type = 4;
 				} else if (!args[i + 1].equals("PDF")) {
 					// System.err.printf("Unknown type: %s\n", args[i + 1]);
 					// printHelp();
@@ -125,6 +129,16 @@
 			// report.generateJExcel();
 			break;
 
+		case 3:
+			report.generateXhtml();
+			// report.generateJExcel();
+			break;
+
+		case 4:
+			report.generateDocx();
+			// report.generateJExcel();
+			break;
+
 		}
 
 		System.exit(0);