Package org.jbpm.designer.server

Source Code of org.jbpm.designer.server.AlternativesRenderer

package org.jbpm.designer.server;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.fop.svg.PDFTranscoder;

public class AlternativesRenderer extends HttpServlet {

    private static final long serialVersionUID = 8526319871562210085L;

    private String baseFilename;
    private String inFile;
    private String outFile;

    protected void doPost(HttpServletRequest req, HttpServletResponse res) {

  String resource = req.getParameter("resource");
  String data = req.getParameter("data");
  String format = req.getParameter("format");
 
  try {
    data = new String(data.getBytes("UTF-8"));
  } catch (UnsupportedEncodingException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
  }
 
  String tmpPath = this.getServletContext().getRealPath("/")
  + File.separator + "tmp" + File.separator;
 
  //create tmp folder
  File tmpFolder = new File(tmpPath);
  if(!tmpFolder.exists()) {
    tmpFolder.mkdirs();
  }
 
  this.baseFilename = String.valueOf(System.currentTimeMillis());
  this.inFile = tmpPath + this.baseFilename + ".svg";
  this.outFile = tmpPath + this.baseFilename + ".pdf";

  try {
    String contextPath = req.getContextPath();
      // store model in temporary svg file.
      BufferedWriter out = new BufferedWriter(new FileWriter(inFile));
      out.write(data);
      out.close();
      makePDF();
      res.getOutputStream().print(contextPath + "/tmp/" + this.baseFilename + ".pdf");

  } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
  }

    }

    protected void makePDF() throws TranscoderException, IOException {

    PDFTranscoder transcoder = new PDFTranscoder();
 
    InputStream in = new java.io.FileInputStream(inFile);
 
    try {
        TranscoderInput input = new TranscoderInput(in);
 
        // Setup output
        OutputStream out = new java.io.FileOutputStream(outFile);
        out = new java.io.BufferedOutputStream(out);
        try {
        TranscoderOutput output = new TranscoderOutput(out);
   
        // Do the transformation
        transcoder.transcode(input, output);
     
        } finally {
          out.close();
        }
    } finally {
        in.close();
    }
    }

}
TOP

Related Classes of org.jbpm.designer.server.AlternativesRenderer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.