/*
* Software is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied.
*
* The Initial Developer of this code is SoftCorporation LLC.
* Usage of this code allowed only with reference to SoftCorporation LLC
* including a link to the web site: http://www.softcorporation.com
* Copyright (C) 2001 SoftCorporation LLC. All Rights Reserved.
*/
import java.io.*;
import java.util.*;
import java.util.zip.*;
import java.awt.*;
import javax.servlet.*;
import javax.servlet.http.*;
import Acme.JPM.Encoders.*;
import com.softcorporation.signpad.*;
/*
* SignPad Servlet Demo.
*
* @version: $Revision: 1.0 $
*/
public class TestServlet extends HttpServlet
{
/*
* Handles requests made with Post method
*
* @param req HttpServletRequest
* @param res HttpServletRespons
*/
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException
{
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String sign = req.getParameter("sign");
String saveas = req.getParameter("saveas");
out.println("");
out.println("
SignPad Test");
out.println("");
out.println("Signature received. Length is " + sign.length() + " bytes.
");
try
{
if ("gif".equals(saveas))
{
File file = new File("signtest.gif");
FileOutputStream outFile = new FileOutputStream(file);
DataOutputStream outStream = new DataOutputStream(outFile);
Image image = SignProducer.getImage(sign);
GifEncoder encoder = new GifEncoder(image, outStream);
encoder.encode();
int i = outStream.size();
outStream.flush();
outStream.close();
outFile.close();
out.println("GIF encoded image saved in file '" + file.getCanonicalPath() +
"'. File size is " + i + " bytes.");
}
else if ("jpeg".equals(saveas))
{
File file = new File("signtest.jpeg");
FileOutputStream outFile = new FileOutputStream(file);
DataOutputStream outStream = new DataOutputStream(outFile);
Image image = SignProducer.getImage(sign);
JpegEncoder encoder = new JpegEncoder(image, 75, outStream);
encoder.Compress();
int i = outStream.size();
outStream.flush();
outStream.close();
outFile.close();
out.println("JPEG encoded image saved in file '" + file.getCanonicalPath() +
"'. File size is " + i + " bytes.");
}
else
{
File file = new File("signtest.zip");
FileOutputStream outFile = new FileOutputStream(file);
ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(outFile));
zos.putNextEntry(new ZipEntry("sign"));
byte bytes[] = new byte[sign.length()];
for (int i = 0; i < sign.length(); i++)
{
bytes[i] = (byte)sign.charAt(i);
}
zos.write(bytes);
zos.finish();
zos.close();
outFile.close();
System.out.println("Sign compressed and saved in file '" + file.getCanonicalPath());
}
}
catch(Exception ex)
{
ex.printStackTrace();
out.println("");
out.println(ex.getMessage());
out.println("");
}
out.println("");
}
}