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();
+ }
+
}