Package com.lowagie.examples.general.webapp

Source Code of com.lowagie.examples.general.webapp.SilentPrintServlet

/*
* $Id$
*
* This code is part of the 'iText Tutorial'.
* You can find the complete tutorial at the following address:
* http://itextdocs.lowagie.com/tutorial/v
*
* This code is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* itext-questions@lists.sourceforge.net
*/

package com.lowagie.examples.general.webapp;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

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

import com.lowagie.text.Chunk;
import com.lowagie.text.LwgDocument;
import com.lowagie.text.DocumentException;
import com.lowagie.text.pdf.PdfWriter;

/**
* Explains how to print silently via Servlet/Browser.
* @author     Heiner Jostkleigrewe, Heiner.Jostkleigrewe@gt-net.de
*/
public class SilentPrintServlet extends HttpServlet {
  private static final long serialVersionUID = -3250788071256174348L;

  /** a possible status */
  public static final int ACT_INIT = 0;

  /** a possible status */
  public static final int ACT_REPORT_1 = 1;

  /**
   * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
   */
  public void doGet(HttpServletRequest requ, HttpServletResponse resp)
      throws ServletException, IOException {
    doWork(requ, resp);
  }

  /**
   * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
   */
  public void doPost(HttpServletRequest requ, HttpServletResponse resp)
      throws ServletException, IOException {
    doWork(requ, resp);
  }

  /**
   * The actual business logic.
   *
   * @param requ  the request object
   * @param resp  the response object
   * @throws IOException
   */
  public void doWork(HttpServletRequest requ, HttpServletResponse resp)
      throws IOException {
    ServletOutputStream out = resp.getOutputStream();
   
    // what did the user request?
    int action = ACT_INIT;
    int sub = ACT_INIT;
    try {
      action = Integer.parseInt(requ.getParameter("action"));
      sub = Integer.parseInt(requ.getParameter("sub"));
    } catch (Exception e) {
    }

    switch (action) {
    case ACT_INIT: {
      htmlHeader(out, requ, resp);
      formular(out, requ, resp, sub);
      break;
    }

    case ACT_REPORT_1: {
      LwgDocument document = new LwgDocument();
      ByteArrayOutputStream baos = new ByteArrayOutputStream();

      try {
        PdfWriter writer = PdfWriter.getInstance(document, baos);
        document.open();
        if (requ.getParameter("preview") == null)
          writer.addJavaScript("this.print(false);", false);
        document.add(new Chunk("Silent Auto Print"));
        document.close();
      } catch (DocumentException e) {
        e.printStackTrace();
      }
      resp.setContentType("application/pdf");

      resp.setContentLength(baos.size());
      baos.writeTo(out);
      out.flush();
      break;
    }
    }
  }

  private void htmlHeader(ServletOutputStream out, HttpServletRequest requ,
      HttpServletResponse resp) throws IOException {

    resp.setContentType("text/html; charset=ISO-8859-1");
    resp.setHeader("Cache-Control", "no-cache");
    out.println("<html>");
    out.println("<head>");
    out
        .println("<meta http-equiv='Content-Type' content='text/html;charset=iso-8859-1'>");
    out.println("<meta http-equiv='expires' content='0'>");
    out.println("<meta http-equiv='cache-control' content='no-cache'>");
    out.println("<meta http-equiv='pragma' content='no-cache'>");
    out.println("</head>");
    out.println("<body>");
  }

  private void formular(ServletOutputStream out, HttpServletRequest requ,
      HttpServletResponse resp, int sub) throws IOException {
    out.print("<form method='post' action='");
    out.print(requ.getRequestURI());
    out.print("?action=");
    out.print(ACT_INIT);
    out.print("&sub=");
    out.print(ACT_REPORT_1);
    out.println("'>");
    out.print("<input type='checkbox' name='preview' value='Y'");
    if (requ.getParameter("preview") != null)
      out.print(" checked ");
    out.println(">preview<br>");

    out.println("<input type=submit value='Report 1'>");
    out.println("</form>");
    if (sub != ACT_INIT) {
      if (requ.getParameter("preview") != null) {
        out.println("<script language='JavaScript'>");
        out.print("w = window.open(\"");
        out.print(requ.getRequestURI());
        out.print("?action=");
        out.print(sub);
        out
            .print("&preview=Y\", \"Printing\", \"width=800,height=450,scrollbars,menubar=yes,resizable=yes\");");
        out.println("</script>");
      } else {
        out.print("<iframe src='");
        out.print(requ.getRequestURI());
        out.print("?action=");
        out.print(sub);
        out.println("' width='10' height='10' name='pdf_box'>");
      }
    }
    out.println("</body>");
    out.println("</html>");
  }
}
TOP

Related Classes of com.lowagie.examples.general.webapp.SilentPrintServlet

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.