Home » pdfbox-1.1.0-src » org.apache.pdfbox.filter » [javadoc | source]

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
   10    *
   11    * Unless required by applicable law or agreed to in writing, software
   12    * distributed under the License is distributed on an "AS IS" BASIS,
   13    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    * See the License for the specific language governing permissions and
   15    * limitations under the License.
   16    */
   17   package org.apache.pdfbox.filter;
   18   
   19   import java.io.IOException;
   20   import java.io.InputStream;
   21   import java.io.OutputStream;
   22   
   23   import org.apache.pdfbox.io.ASCII85InputStream;
   24   import org.apache.pdfbox.io.ASCII85OutputStream;
   25   
   26   import org.apache.pdfbox.cos.COSDictionary;
   27   
   28   /**
   29    * This is the used for the ASCIIHexDecode filter.
   30    *
   31    * @author <a href="mailto:ben@benlitchfield.com">Ben Litchfield</a>
   32    * @version $Revision: 1.8 $
   33    */
   34   public class ASCII85Filter implements Filter
   35   {
   36       /**
   37        * {@inheritDoc}
   38        */
   39       public void decode( InputStream compressedData, OutputStream result, COSDictionary options, int filterIndex ) 
   40           throws IOException
   41       {
   42           ASCII85InputStream is = null;
   43           try
   44           {
   45               is = new ASCII85InputStream(compressedData);
   46               byte[] buffer = new byte[1024];
   47               int amountRead = 0;
   48               while( (amountRead = is.read( buffer, 0, 1024) ) != -1 )
   49               {
   50                   result.write(buffer, 0, amountRead);
   51               }
   52               result.flush();
   53           }
   54           finally
   55           {
   56               if( is != null )
   57               {
   58                   is.close();
   59               }
   60           }
   61       }
   62   
   63       /**
   64        * {@inheritDoc}
   65        */
   66       public void encode( InputStream rawData, OutputStream result, COSDictionary options, int filterIndex ) 
   67           throws IOException
   68       {
   69           ASCII85OutputStream os = new ASCII85OutputStream(result);
   70           byte[] buffer = new byte[1024];
   71           int amountRead = 0;
   72           while( (amountRead = rawData.read( buffer, 0, 1024 )) != -1 )
   73           {
   74               os.write( buffer, 0, amountRead );
   75           }
   76           os.close();
   77           result.flush();
   78       }
   79   }

Home » pdfbox-1.1.0-src » org.apache.pdfbox.filter » [javadoc | source]