You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2012/12/31 04:19:53 UTC
svn commit: r1427040 - in /incubator/openmeetings/trunk/singlewebapp:
WebContent/src/base/mainMethods.lzx
WebContent/src/modules/conference/conference/conferenceMenubar.lzx
src/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java
Author: solomax
Date: Mon Dec 31 03:19:53 2012
New Revision: 1427040
URL: http://svn.apache.org/viewvc?rev=1427040&view=rev
Log:
Whiteboard export: Save as SVG and JPG somehow works
Modified:
incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/conference/conferenceMenubar.lzx
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java
Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx?rev=1427040&r1=1427039&r2=1427040&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx Mon Dec 31 03:19:53 2012
@@ -96,13 +96,12 @@
<confmenucommand id="cmd_coBrowser" actionCommand="browser_open" key="['control','b']"/>
-->
- <!--
- There is no image export at the moment
- <confmenucommand id="cmd_exportFilePNG" onselect="canvas.doWhiteboardActionmenu('exportFilePNG')" />
- <confmenucommand id="cmd_exportFileJPG" onselect="canvas.doWhiteboardActionmenu('exportFileJPG')" />
- <confmenucommand id="cmd_exportFilePDF" onselect="canvas.doWhiteboardActionmenu('exportFilePDF')" />
- <confmenucommand id="cmd_exportFileSVG" onselect="canvas.doWhiteboardActionmenu('exportFileSVG')" />
- <confmenucommand id="cmd_exportFileTIF" onselect="canvas.doWhiteboardActionmenu('exportFileTIF')" />
+ <confmenucommand id="cmd_exportFilePNG" onselect="canvas.doWhiteboardActionmenu('exportFilePNG')" tipLabelId="1489" />
+ <confmenucommand id="cmd_exportFileJPG" onselect="canvas.doWhiteboardActionmenu('exportFileJPG')" tipLabelId="1489" />
+ <confmenucommand id="cmd_exportFileSVG" onselect="canvas.doWhiteboardActionmenu('exportFileSVG')" tipLabelId="1489" />
+ <!--
+ <confmenucommand id="cmd_exportFilePDF" onselect="canvas.doWhiteboardActionmenu('exportFilePDF')" tipLabelId="1489" />
+ <confmenucommand id="cmd_exportFileTIF" onselect="canvas.doWhiteboardActionmenu('exportFileTIF')" tipLabelId="1489" />
-->
<attribute name="colorArray" value="null" />
Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/conference/conferenceMenubar.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/conference/conferenceMenubar.lzx?rev=1427040&r1=1427039&r2=1427040&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/conference/conferenceMenubar.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/conference/conferenceMenubar.lzx Mon Dec 31 03:19:53 2012
@@ -257,7 +257,12 @@
<horizontalDropDownSpacer />
<conferencDropDownMenuItem labelid="1126" command="cmd_editWhiteboardDefault"
enabled="true"/>
-
+ <!-- Save Whiteboard as Image menues are commented for now
+ <horizontalDropDownSpacer />
+ <conferencDropDownMenuItem labelid="560" command="cmd_exportFileSVG" enabled="true"/>
+ <conferencDropDownMenuItem labelid="561" command="cmd_exportFilePNG" enabled="true"/>
+ <conferencDropDownMenuItem labelid="562" command="cmd_exportFileJPG" enabled="true"/>
+ -->
</view>
</class>
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java?rev=1427040&r1=1427039&r2=1427040&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java Mon Dec 31 03:19:53 2012
@@ -19,10 +19,10 @@
package org.apache.openmeetings.servlet.outputhandler;
import java.io.File;
+import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
-import java.io.Writer;
import java.util.Date;
import java.util.List;
@@ -34,6 +34,9 @@ import javax.servlet.http.HttpServletRes
import org.apache.batik.dom.GenericDOMImplementation;
import org.apache.batik.dom.svg.SVGDOMImplementation;
import org.apache.batik.svggen.SVGGraphics2D;
+import org.apache.batik.transcoder.TranscoderInput;
+import org.apache.batik.transcoder.TranscoderOutput;
+import org.apache.batik.transcoder.image.JPEGTranscoder;
import org.apache.openmeetings.OpenmeetingsVariables;
import org.apache.openmeetings.batik.beans.PrintBean;
import org.apache.openmeetings.data.basic.Sessionmanagement;
@@ -104,8 +107,7 @@ public class ExportToImage extends HttpS
* , javax.servlet.http.HttpServletResponse)
*/
@Override
- protected void service(HttpServletRequest httpServletRequest,
- HttpServletResponse httpServletResponse) throws ServletException,
+ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
try {
@@ -114,24 +116,24 @@ public class ExportToImage extends HttpS
return;
}
- String sid = httpServletRequest.getParameter("sid");
+ String sid = request.getParameter("sid");
if (sid == null) {
sid = "default";
}
log.debug("sid: " + sid);
- String hash = httpServletRequest.getParameter("hash");
+ String hash = request.getParameter("hash");
if (hash == null) {
hash = "";
}
log.debug("hash: " + hash);
- String fileName = httpServletRequest.getParameter("fileName");
+ String fileName = request.getParameter("fileName");
if (fileName == null) {
fileName = "file_xyz";
}
- String exportType = httpServletRequest.getParameter("exportType");
+ String exportType = request.getParameter("exportType");
if (exportType == null) {
exportType = "svg";
}
@@ -180,64 +182,38 @@ public class ExportToImage extends HttpS
// Finally, stream out SVG to the standard output using
// UTF-8 encoding.
boolean useCSS = true; // we want to use CSS style attributes
- // Writer out = new OutputStreamWriter(System.out, "UTF-8");
- if (exportType.equals("svg")) {
- // OutputStream out = httpServletResponse.getOutputStream();
- // httpServletResponse.setContentType("APPLICATION/OCTET-STREAM");
- // httpServletResponse.setHeader("Content-Disposition","attachment; filename=\""
- // + requestedFile + "\"");
- Writer out = httpServletResponse.getWriter();
-
- svgGenerator.stream(out, useCSS);
-
- } else if (exportType.equals("png") || exportType.equals("jpg")
+ File uploadTempDir = OmFileHelper.getUploadTempDir();
+ log.debug("working_dir: " + uploadTempDir);
+ String reqFilePrefix = fileName + "_" + CalendarPatterns.getTimeForStreamId(new Date());
+ File svgFile = new File(uploadTempDir, reqFilePrefix + ".svg");
+ log.debug("exported svg file: " + svgFile.getCanonicalPath());
+ FileWriter out = new FileWriter(svgFile);
+ svgGenerator.stream(out, useCSS);
+ out.flush();
+ out.close();
+ File expFile = new File(uploadTempDir, reqFilePrefix + "." + exportType);
+ log.debug("exported file: " + expFile.getCanonicalPath());
+ if ("svg".equals(exportType)) {
+ outFile(response, expFile);
+ } else if ("jpg".equals(exportType)) {
+ JPEGTranscoder t = new JPEGTranscoder();
+ t.addTranscodingHint(JPEGTranscoder.KEY_QUALITY, 1f);
+
+ OutputStream ostream = new FileOutputStream(expFile);
+ TranscoderOutput output = new TranscoderOutput(new FileOutputStream(expFile));
+
+ // Perform the transcoding.
+ t.transcode(new TranscoderInput(svgFile.toURI().toString()), output);
+ ostream.flush();
+ ostream.close();
+
+ outFile(response, expFile);
+ } else if (exportType.equals("png")
|| exportType.equals("gif") || exportType.equals("tif")
|| exportType.equals("pdf")) {
-
- File uploadTempDir = OmFileHelper.getUploadTempDir();
-
- String requestedFileSVG = fileName + "_"
- + CalendarPatterns.getTimeForStreamId(new Date())
- + ".svg";
- String resultFileName = fileName + "_"
- + CalendarPatterns.getTimeForStreamId(new Date())
- + "." + exportType;
-
- log.debug("working_dir: " + uploadTempDir);
- log.debug("requestedFileSVG: " + requestedFileSVG);
- log.debug("resultFileName: " + resultFileName);
-
- File svgFile = new File(uploadTempDir, requestedFileSVG);
- File resultFile = new File(uploadTempDir, resultFileName);
-
- log.debug("svgFile: " + svgFile.getCanonicalPath());
- log.debug("resultFile: " + resultFile.getCanonicalPath());
- log.debug("svgFile P: " + svgFile.getPath());
- log.debug("resultFile P: " + resultFile.getPath());
-
- FileWriter out = new FileWriter(svgFile);
- svgGenerator.stream(out, useCSS);
-
- httpServletResponse.reset();
- httpServletResponse.resetBuffer();
- OutputStream outStream = httpServletResponse
- .getOutputStream();
- httpServletResponse
- .setContentType("APPLICATION/OCTET-STREAM");
- httpServletResponse.setHeader("Content-Disposition",
- "attachment; filename=\"" + resultFileName + "\"");
- httpServletResponse.setHeader("Content-Length",
- "" + resultFile.length());
-
- OmFileHelper.copyFile(resultFile, outStream);
- outStream.close();
-
- out.flush();
- out.close();
-
+ //TODO not implemented yet
}
-
}
} catch (Exception er) {
@@ -246,4 +222,17 @@ public class ExportToImage extends HttpS
er.printStackTrace();
}
}
+
+ private void outFile(HttpServletResponse response, File f) throws IOException {
+ response.reset();
+ response.resetBuffer();
+ OutputStream outStream = response.getOutputStream();
+ response.setContentType("APPLICATION/OCTET-STREAM");
+ response.setHeader("Content-Disposition", "attachment; filename=\"" + f.getName() + "\"");
+ response.setHeader("Content-Length", "" + f.length());
+
+ OmFileHelper.copyFile(f, outStream);
+ outStream.close();
+ }
+
}