Package org.pdfbox.filter

Examples of org.pdfbox.filter.Filter


     * @throws IOException If there is an error parsing the stream.
     */
    private void doDecode( COSName filterName ) throws IOException
    {
        FilterManager manager = getFilterManager();
        Filter filter = manager.getFilter( filterName );
        InputStream input;

        boolean done = false;
        IOException exception = null;
        long position = unFilteredStream.getPosition();
        long length = unFilteredStream.getLength();

        if( length == 0 )
        {
            //if the length is zero then don't bother trying to decode
            //some filters don't work when attempting to decode
            //with a zero length stream.  See zlib_error_01.pdf
            unFilteredStream = new RandomAccessFileOutputStream( file );
            done = true;
        }
        else
        {
            //ok this is a simple hack, sometimes we read a couple extra
            //bytes that shouldn't be there, so we encounter an error we will just
            //try again with one less byte.
            for( int tryCount=0; !done && tryCount<5; tryCount++ )
            {
                try
                {
                    input = new BufferedInputStream(
                        new RandomAccessFileInputStream( file, position, length ), BUFFER_SIZE );
                    unFilteredStream = new RandomAccessFileOutputStream( file );
                    filter.decode( input, unFilteredStream, this );
                    done = true;
                }
                catch( IOException io )
                {
                    length--;
View Full Code Here


     * @throws IOException If there is an error parsing the stream.
     */
    private void doEncode( COSName filterName ) throws IOException
    {
        FilterManager manager = getFilterManager();
        Filter filter = manager.getFilter( filterName );
        InputStream input;

        input = new BufferedInputStream(
            new RandomAccessFileInputStream( file, filteredStream.getPosition(),
                                                   filteredStream.getLength() ), BUFFER_SIZE );
        filteredStream = new RandomAccessFileOutputStream( file );
        filter.encode( input, filteredStream, this );
    }
View Full Code Here

            ByteArrayOutputStream out = new ByteArrayOutputStream(getImageData().length);
            FilterManager filterManager = new FilterManager();
            for( int i=0; i<filters.size(); i++ )
            {
                out.reset();
                Filter filter = filterManager.getFilter( (String)filters.get( i ) );
                filter.decode( in, out, params.getDictionary() );
                in = new ByteArrayInputStream( out.toByteArray() );
            }
            finalData = out.toByteArray();
        }
View Full Code Here

        Iterator filterIter = filters.iterator();
        while( filterIter.hasNext() )
        {
            long start = System.currentTimeMillis();
            Filter filter = (Filter)filterIter.next();
            if( !(filter instanceof DCTFilter ||
                  filter instanceof CCITTFaxDecodeFilter ||
                  filter instanceof RunLengthDecodeFilter))
            {
                checkFilter( new File( "classes" ), filter );
                long stop = System.currentTimeMillis();
                System.out.println( "Time for filter " + filter.getClass().getName() + "=" + (stop-start) );
            }
        }
    }
View Full Code Here

            {
                done = true;
            }
            else
            {
                Filter filter = manager.getFilter( COSName.getPDFName(nextFilter) );
                filter.decode( is, os, stream );
                is = new ByteArrayInputStream( os.toByteArray() );
            }
        }
        return is;
    }
View Full Code Here

        {
            log.debug("doDecode( " + filterName.getName() + " ) dic=" + dic + " read.length="+unFilteredStream.getLength() );
        }

        FilterManager manager = getFilterManager();
        Filter filter = manager.getFilter( filterName );
        InputStream input;

        boolean done = false;
        IOException exception = null;
        long position = unFilteredStream.getPosition();
        long length = unFilteredStream.getLength();

        //ok this is a simple hack, sometimes we read a couple extra
        //bytes that shouldn't be there, so we encounter an error we will just
        //try again with one less byte.
        for( int tryCount=0; !done && tryCount<5; tryCount++ )
        {
            try
            {
                input = new RandomAccessFileInputStream( file, position, length );
                unFilteredStream = new RandomAccessFileOutputStream( file );
                filter.decode( input, unFilteredStream, dic );
                done = true;
            }
            catch( IOException io )
            {
                length--;
View Full Code Here

     * @throws IOException If there is an error parsing the stream.
     */
    private void doEncode( COSName filterName ) throws IOException
    {
        FilterManager manager = getFilterManager();
        Filter filter = manager.getFilter( filterName );
        InputStream input;

        input = new RandomAccessFileInputStream( file, filteredStream.getPosition(), filteredStream.getLength() );
        filteredStream = new RandomAccessFileOutputStream( file );
        filter.encode( input, filteredStream, dic );
    }
View Full Code Here

TOP

Related Classes of org.pdfbox.filter.Filter

Copyright © 2018 www.massapicom. 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.