1   package ch.ige.edossier.util;
2   
3   import java.io.*;
4   import javax.servlet.ServletException;
5   import javax.servlet.http.HttpServlet;
6   import javax.servlet.http.HttpServletRequest;
7   import javax.servlet.http.HttpServletResponse;
8   
9   /**
10   * B32.03 - eDossier-Interceptions - Diplomarbeit an der Software-Schule Schweiz<br>
11   * MUSS-ZIEL [M4] - Detail-Dossier (Pflichtenheft b32.03_PF_eDossier.pdf, Seite 16)<br>
12   * KANN-ZIEL [K6] - Attachement (Pflichtenheft b32.03_PF_eDossier.pdf, Seite 17)<br>
13   * Die Klasse ImageServlet wandelt ein Tiff-Bild in ein JPEG-Bild um.
14   * <p>
15   * Copyright (c) 2004, Eidgenössisches Institut für Geistiges Eigentum
16   * @author    Anita Rueegsegger, Marc Bouquet
17   * @version   $Id: ImageServlet.java,v 1.4 2004/11/02 02:01:52 bouquet Exp $
18   */
19  public class ImageServlet extends HttpServlet
20  {
21    private static final String CONTENT_TYPE = "text/plain";
22  
23    public void init() throws ServletException
24    {}
25  
26    // Die HTTP-Anforderung Get bearbeiten
27    public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException
28    {
29      String tiffPath = request.getParameter( "tiffPath" );
30      int status = 0;
31  
32      if( request.getParameter( "bildTyp" ).equals( "tiff" ) )
33      {
34        try
35        {
36          Process proc = Runtime.getRuntime().exec( "C:\\Programme\\2JPEG\\2jpeg.exe s=\"" + tiffPath +
37                                                    "\" -nodlg -q75 -ov -log -prior2 -remsrc" );
38  
39          BufferedReader br = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
40  
41          int i = 0;
42          while( ( br.readLine() ) != null )
43          {
44            i += 1;
45            Thread.currentThread().sleep( 100 );
46            if( i > 600 )
47            {
48              break;
49            }
50          }
51        }
52        catch( IOException ex )
53        {
54          status = 1;
55        }
56        catch( InterruptedException iex )
57        {
58          status = 1;
59        }
60      }
61      else
62      {
63        try
64        {
65          Process proc = Runtime.getRuntime().exec( "C:\\Programme\\2JPEG\\2jpeg.exe s=\"" + tiffPath +
66                                                    "\" -nodlg -q99 -ov -log -prior2 -remsrc" );
67  
68          BufferedReader br = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
69  
70          int i = 0;
71          while( ( br.readLine() ) != null )
72          {
73            i += 1;
74            Thread.currentThread().sleep( 100 );
75            if( i > 600 )
76            {
77              break;
78            }
79          }
80        }
81        catch( IOException ex )
82        {
83          status = 1;
84        }
85        catch( InterruptedException iex )
86        {
87          status = 1;
88        }
89      }
90      response.setContentType( CONTENT_TYPE );
91      response.setHeader( "status", String.valueOf( status ) );
92      PrintWriter out = response.getWriter();
93      out.write( status );
94    }
95  
96    public void destroy()
97    {
98    }
99  }
100