]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-5846 Added support to generate reports in MSWord/OpenOffice docx, MSExcel...
authorPatrick Schmitz <pschmitz@berkeley.edu>
Thu, 31 Jan 2013 23:01:10 +0000 (15:01 -0800)
committerPatrick Schmitz <pschmitz@berkeley.edu>
Thu, 31 Jan 2013 23:01:10 +0000 (15:01 -0800)
Also added a small tweak to catch unknown mime types, and revert to PDF as a default, with errors in log (but no exception). Deleting the .jasper resource, as we now only want to maintain and install the jrxml.

services/report/3rdparty/jasper-cs-report/src/main/resources/acq_basic.jasper [deleted file]
services/report/3rdparty/jasper-cs-report/src/main/resources/acq_basic.jrxml
services/report/client/src/main/java/org/collectionspace/services/client/ReportClient.java
services/report/service/src/main/java/org/collectionspace/services/report/nuxeo/ReportDocumentModelHandler.java

diff --git a/services/report/3rdparty/jasper-cs-report/src/main/resources/acq_basic.jasper b/services/report/3rdparty/jasper-cs-report/src/main/resources/acq_basic.jasper
deleted file mode 100644 (file)
index f73c73c..0000000
Binary files a/services/report/3rdparty/jasper-cs-report/src/main/resources/acq_basic.jasper and /dev/null differ
index e6e7055831b7b9d25f1de95d604e9feffad6dbb5..83109e96b227b756ba812e49139ac11f02d3a357 100644 (file)
@@ -58,6 +58,9 @@ $P!{where_clause}]]>
        </background>
        <title>
                <band height="102" splitType="Stretch">
+                       <frame>
+                               <reportElement mode="Opaque" x="0" y="76" width="802" height="14" forecolor="#000000" backcolor="#66FFFF"/>
+                       </frame>
                        <frame>
                                <reportElement mode="Opaque" x="0" y="0" width="797" height="90" backcolor="#FFFFFF"/>
                                <staticText>
@@ -72,9 +75,6 @@ $P!{where_clause}]]>
                                        <imageExpression><![CDATA["http://www.collectionspace.org/sites/all/themes/CStheme/images/CSpaceLogo.png"]]></imageExpression>
                                </image>
                        </frame>
-                       <frame>
-                               <reportElement mode="Opaque" x="0" y="76" width="802" height="14" forecolor="#000000" backcolor="#66FFFF"/>
-                       </frame>
                </band>
        </title>
        <pageHeader>
index 82d40bac5ce506ad428de45a01b849bb1a5396c4..2c0b81184934d19b4eac9a23eb5372eff25b4e39 100644 (file)
@@ -43,6 +43,12 @@ public class ReportClient extends AbstractCommonListPoxServiceClientImpl<ReportP
     public static final String PDF_MIME_TYPE = "application/pdf";
     public static final String CSV_MIME_TYPE = "text/csv";
     public static final String TSV_MIME_TYPE = "text/tab-separated-values";
+    public static final String MSWORD_MIME_TYPE = "application/msword";
+    public static final String OPEN_DOCX_MIME_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
+    public static final String MSEXCEL_MIME_TYPE = "application/vnd.ms-excel";
+    public static final String OPEN_XLSX_MIME_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
+    public static final String MSPPT_MIME_TYPE = "application/vnd.ms-powerpoint";
+    public static final String OPEN_PPTX_MIME_TYPE = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
     public static final String DEFAULT_REPORT_OUTPUT_MIME = PDF_MIME_TYPE;
     public static final String COMPILED_REPORT_EXTENSION = ".jasper";
     public static final String REPORT_DECSRIPTION_EXTENSION = ".jrxml";
index bd9fbfbc72adfaca691d0c799a2aaf4772446ac6..95e3f4923bc8bd3e97e728333a0d06d0d08a8dc6 100644 (file)
@@ -53,6 +53,9 @@ import net.sf.jasperreports.engine.export.JRCsvExporterParameter;
 import net.sf.jasperreports.engine.export.JRHtmlExporter;
 import net.sf.jasperreports.engine.export.JRPdfExporter;
 import net.sf.jasperreports.engine.export.JRXmlExporter;
+import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;
+import net.sf.jasperreports.engine.export.ooxml.JRPptxExporter;
+import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;
 
 import org.bouncycastle.crypto.RuntimeCryptoException;
 import org.collectionspace.services.ReportJAXBSchema;
@@ -301,6 +304,22 @@ public class ReportDocumentModelHandler extends DocHandlerBase<ReportsCommon> {
                                exporter = new JRCsvExporter();
                                exporter.setParameter(JRCsvExporterParameter.FIELD_DELIMITER, "\t");
                                outputFilename = outputFilename+".csv";
+                       } else if(outputMimeType.equals(ReportClient.MSWORD_MIME_TYPE)  // Understand msword as docx
+                                       || outputMimeType.equals(ReportClient.OPEN_DOCX_MIME_TYPE)) {
+                               exporter = new JRDocxExporter();
+                               outputFilename = outputFilename+".docx";
+                       } else if(outputMimeType.equals(ReportClient.MSEXCEL_MIME_TYPE) // Understand msexcel as xlsx
+                                       || outputMimeType.equals(ReportClient.OPEN_XLSX_MIME_TYPE)) {
+                               exporter = new JRXlsxExporter();
+                               outputFilename = outputFilename+".xlsx";
+                       } else if(outputMimeType.equals(ReportClient.MSPPT_MIME_TYPE)   // Understand msppt as xlsx
+                                       || outputMimeType.equals(ReportClient.OPEN_PPTX_MIME_TYPE)) {
+                               exporter = new JRPptxExporter();
+                               outputFilename = outputFilename+".pptx";
+                       } else {
+                               logger.error("Reporting: unsupported output MIME type - defaulting to PDF");
+                               exporter = new JRPdfExporter();
+                               outputFilename = outputFilename+"-default-to.pdf";
                        }
                // fill the report
                        JasperPrint jasperPrint = JasperFillManager.fillReport(fileStream, params,conn);