You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/02/23 21:25:10 UTC
svn commit: r1571082 [2/2] - in /pdfbox/trunk/pdfbox/src:
main/java/org/apache/pdfbox/cos/ main/java/org/apache/pdfbox/filter/
main/java/org/apache/pdfbox/pdmodel/common/
main/java/org/apache/pdfbox/pdmodel/graphics/color/
main/java/org/apache/pdfbox/p...
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/RunLengthDecodeFilter.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/RunLengthDecodeFilter.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/RunLengthDecodeFilter.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/RunLengthDecodeFilter.java Sun Feb 23 20:25:09 2014
@@ -25,82 +25,51 @@ import org.apache.commons.logging.LogFac
import org.apache.pdfbox.cos.COSDictionary;
/**
- * This is a filter for the RunLength Decoder.
+ * Decompresses data encoded using a byte-oriented run-length encoding algorithm,
+ * reproducing the original text or binary data
*
- * From the PDF Reference
- * <pre>
- * The RunLengthDecode filter decodes data that has been encoded in a simple
- * byte-oriented format based on run length. The encoded data is a sequence of
- * runs, where each run consists of a length byte followed by 1 to 128 bytes of data. If
- * the length byte is in the range 0 to 127, the following length + 1 (1 to 128) bytes
- * are copied literally during decompression. If length is in the range 129 to 255, the
- * following single byte is to be copied 257 ? length (2 to 128) times during decompression.
- * A length value of 128 denotes EOD.
- *
- * The compression achieved by run-length encoding depends on the input data. In
- * the best case (all zeros), a compression of approximately 64:1 is achieved for long
- * files. The worst case (the hexadecimal sequence 00 alternating with FF) results in
- * an expansion of 127:128.
- * </pre>
- *
- * @author <a href="mailto:ben@benlitchfield.com">Ben Litchfield</a>
- * @version $Revision: 1.6 $
+ * @author Ben Litchfield
*/
-public class RunLengthDecodeFilter implements Filter
+final class RunLengthDecodeFilter extends Filter
{
- /**
- * Log instance.
- */
private static final Log log = LogFactory.getLog(RunLengthDecodeFilter.class);
-
private static final int RUN_LENGTH_EOD = 128;
- /**
- * Constructor.
- */
- public RunLengthDecodeFilter()
- {
- //default constructor
- }
-
- /**
- * {@inheritDoc}
- */
- public void decode( InputStream compressedData, OutputStream result, COSDictionary options, int filterIndex )
- throws IOException
+ @Override
+ protected final DecodeResult decode(InputStream encoded, OutputStream decoded,
+ COSDictionary parameters) throws IOException
{
- int dupAmount = -1;
+ int dupAmount;
byte[] buffer = new byte[128];
- while( (dupAmount = compressedData.read()) != -1 && dupAmount != RUN_LENGTH_EOD )
+ while ((dupAmount = encoded.read()) != -1 && dupAmount != RUN_LENGTH_EOD)
{
- if( dupAmount <= 127 )
+ if (dupAmount <= 127)
{
- int amountToCopy = dupAmount+1;
- int compressedRead = 0;
- while( amountToCopy > 0 )
+ int amountToCopy = dupAmount + 1;
+ int compressedRead;
+ while(amountToCopy > 0)
{
- compressedRead = compressedData.read( buffer, 0, amountToCopy );
- result.write( buffer, 0, compressedRead );
+ compressedRead = encoded.read(buffer, 0, amountToCopy);
+ decoded.write(buffer, 0, compressedRead);
amountToCopy -= compressedRead;
}
}
else
{
- int dupByte = compressedData.read();
- for( int i=0; i<257-dupAmount; i++ )
+ int dupByte = encoded.read();
+ for (int i = 0; i < 257 - dupAmount; i++)
{
- result.write( dupByte );
+ decoded.write(dupByte);
}
}
}
+ return new DecodeResult(parameters);
}
- /**
- * {@inheritDoc}
- */
- public void encode( InputStream rawData, OutputStream result, COSDictionary options, int filterIndex )
- throws IOException
+ @Override
+ protected final void encode(InputStream input, OutputStream encoded, COSDictionary parameters)
+ throws IOException
{
- log.warn( "RunLengthDecodeFilter.encode is not implemented yet, skipping this stream." );
+ log.warn("RunLengthDecodeFilter.encode is not implemented yet, skipping this stream.");
}
}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/TIFFFaxDecoder.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/TIFFFaxDecoder.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/TIFFFaxDecoder.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/TIFFFaxDecoder.java Sun Feb 23 20:25:09 2014
@@ -19,7 +19,10 @@
package org.apache.pdfbox.filter;
-class TIFFFaxDecoder {
+/**
+ * CCITT Fax decoder
+ */
+final class TIFFFaxDecoder {
private int bitPointer, bytePointer;
private byte[] data;
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java Sun Feb 23 20:25:09 2014
@@ -34,7 +34,7 @@ import org.apache.pdfbox.cos.COSNull;
import org.apache.pdfbox.cos.COSStream;
import org.apache.pdfbox.filter.Filter;
-import org.apache.pdfbox.filter.FilterManager;
+import org.apache.pdfbox.filter.FilterFactory;
import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
@@ -246,7 +246,6 @@ public class PDStream implements COSObje
public InputStream getPartiallyFilteredStream(List<String> stopFilters)
throws IOException
{
- FilterManager manager = stream.getFilterManager();
InputStream is = stream.getFilteredStream();
ByteArrayOutputStream os = new ByteArrayOutputStream();
List<COSName> filters = getFilters();
@@ -260,7 +259,7 @@ public class PDStream implements COSObje
}
else
{
- Filter filter = manager.getFilter(nextFilter);
+ Filter filter = FilterFactory.INSTANCE.getFilter(nextFilter);
filter.decode(is, os, stream, i);
IOUtils.closeQuietly(is);
is = new ByteArrayInputStream(os.toByteArray());
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDJPXColorSpace.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDJPXColorSpace.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDJPXColorSpace.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDJPXColorSpace.java Sun Feb 23 20:25:09 2014
@@ -59,10 +59,10 @@ public final class PDJPXColorSpace exten
{
int n = getNumberOfComponents();
float[] decode = new float[n * 2];
- for (int i = 0; i < n; i += 2)
+ for (int i = 0; i < n; i++)
{
- decode[i] = awtColorSpace.getMinValue(i);
- decode[i+1] = awtColorSpace.getMaxValue(i);
+ decode[i * 2] = awtColorSpace.getMinValue(i);
+ decode[i * 2 + 1] = awtColorSpace.getMaxValue(i);
}
return decode;
}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java Sun Feb 23 20:25:09 2014
@@ -20,26 +20,19 @@ import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.cos.COSStream;
-import org.apache.pdfbox.filter.JPXFilter;
-import org.apache.pdfbox.io.IOUtils;
+import org.apache.pdfbox.filter.DecodeResult;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.common.PDMetadata;
import org.apache.pdfbox.pdmodel.common.PDStream;
import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
import org.apache.pdfbox.pdmodel.graphics.PDXObject;
+import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
-import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.Paint;
-import java.awt.Point;
import java.awt.image.BufferedImage;
-import java.awt.image.ColorModel;
-import java.awt.image.DataBuffer;
-import java.awt.image.Raster;
import java.awt.image.WritableRaster;
import java.io.IOException;
-import java.io.InputStream;
import java.util.List;
import java.util.Map;
@@ -52,6 +45,7 @@ import java.util.Map;
public final class PDImageXObject extends PDXObject implements PDImage
{
private BufferedImage cachedImage;
+ private PDColorSpace colorSpace;
private Map<String, PDColorSpace> colorSpaces; // from current resource dictionary
/**
@@ -71,7 +65,7 @@ public final class PDImageXObject extend
* Creates an Image XObject in the given document.
* @param document the current document
*/
- public PDImageXObject(PDDocument document)
+ public PDImageXObject(PDDocument document) throws IOException
{
this(new PDStream(document), null);
}
@@ -81,10 +75,25 @@ public final class PDImageXObject extend
* @param stream the XObject stream to read
* @param colorSpaces the color spaces in the current resources dictionary, null for masks
*/
- public PDImageXObject(PDStream stream, Map<String, PDColorSpace> colorSpaces)
+ public PDImageXObject(PDStream stream, Map<String, PDColorSpace> colorSpaces) throws IOException
+ {
+ this(stream, colorSpaces, stream.getStream().getDecodeResult());
+ }
+
+ // repairs parameters using decode result
+ private PDImageXObject(PDStream stream, Map<String, PDColorSpace> colorSpaces,
+ DecodeResult decodeResult)
{
- super(stream, COSName.IMAGE);
+ super(repair(stream, decodeResult), COSName.IMAGE);
this.colorSpaces = colorSpaces;
+ this.colorSpace = decodeResult.getJPXColorSpace();
+ }
+
+ // repairs parameters using decode result
+ private static PDStream repair(PDStream stream, DecodeResult decodeResult)
+ {
+ stream.getStream().addAll(decodeResult.getParameters());
+ return stream;
}
/**
@@ -250,7 +259,7 @@ public final class PDImageXObject extend
* Returns the Mask Image XObject associated with this image, or null if there is none.
* @return Mask Image XObject
*/
- public PDImageXObject getMask()
+ public PDImageXObject getMask() throws IOException
{
COSStream cosStream = (COSStream)getCOSStream().getDictionaryObject(COSName.MASK);
if (cosStream != null)
@@ -264,7 +273,7 @@ public final class PDImageXObject extend
* Returns the Soft Mask Image XObject associated with this image, or null if there is none.
* @return the SMask Image XObject, or null.
*/
- public PDImageXObject getSoftMask()
+ public PDImageXObject getSoftMask() throws IOException
{
COSStream cosStream = (COSStream)getCOSStream().getDictionaryObject(COSName.SMASK);
if (cosStream != null)
@@ -276,7 +285,7 @@ public final class PDImageXObject extend
public int getBitsPerComponent()
{
- return getCOSStream().getInt(COSName.BITS_PER_COMPONENT, COSName.BPC, -1);
+ return getCOSStream().getInt(COSName.BITS_PER_COMPONENT, COSName.BPC);
}
public void setBitsPerComponent(int bpc)
@@ -286,46 +295,25 @@ public final class PDImageXObject extend
public PDColorSpace getColorSpace() throws IOException
{
- COSBase cosBase = getCOSStream().getDictionaryObject(COSName.COLORSPACE, COSName.CS);
- if (cosBase != null)
- {
- return PDColorSpace.create(cosBase, colorSpaces, null);
- }
- else
+ if (colorSpace == null)
{
- // examine filters
- COSBase filter = getCOSStream().getDictionaryObject(COSName.FILTER);
- if (COSName.JPX_DECODE.equals(filter))
+ COSBase cosBase = getCOSStream().getDictionaryObject(COSName.COLORSPACE, COSName.CS);
+ if (cosBase != null)
{
- // JPX images may embed a color space
- InputStream input = getStream().createInputStream();
- try
- {
- return JPXFilter.getColorSpace(input);
- }
- finally
- {
- IOUtils.closeQuietly(input);
- }
+ colorSpace = PDColorSpace.create(cosBase, colorSpaces, null);
+ }
+ else if (isStencil())
+ {
+ // stencil mask color space must be gray, it is often missing
+ return PDDeviceGray.INSTANCE;
}
else
{
- // TODO what does the PDF spec say about this?
- // if the ColorSpace is missing, we try and guess it
- if (COSName.CCITTFAX_DECODE.equals(filter) ||
- COSName.CCITTFAX_DECODE_ABBREVIATION.equals(filter) ||
- COSName.JBIG2_DECODE.equals(filter) ||
- isStencil())
- {
- return PDDeviceGray.INSTANCE;
- }
- else
- {
- // this method must not return null
- throw new IOException("could not determine color space");
- }
+ // an image without a color space is always broken
+ throw new IOException("could not determine color space");
}
}
+ return colorSpace;
}
public PDStream getStream() throws IOException
@@ -340,7 +328,7 @@ public final class PDImageXObject extend
public int getHeight()
{
- return getCOSStream().getInt(COSName.HEIGHT, -1);
+ return getCOSStream().getInt(COSName.HEIGHT);
}
public void setHeight(int h)
@@ -350,7 +338,7 @@ public final class PDImageXObject extend
public int getWidth()
{
- return getCOSStream().getInt(COSName.WIDTH, -1);
+ return getCOSStream().getInt(COSName.WIDTH);
}
public void setWidth(int w)
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java Sun Feb 23 20:25:09 2014
@@ -21,7 +21,6 @@ import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -29,8 +28,12 @@ import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.cos.COSStream;
+import org.apache.pdfbox.filter.DecodeResult;
import org.apache.pdfbox.filter.Filter;
-import org.apache.pdfbox.filter.FilterManager;
+import org.apache.pdfbox.filter.FilterFactory;
+import org.apache.pdfbox.io.RandomAccess;
+import org.apache.pdfbox.io.RandomAccessBuffer;
import org.apache.pdfbox.pdmodel.common.COSArrayList;
import org.apache.pdfbox.pdmodel.common.PDMemoryStream;
import org.apache.pdfbox.pdmodel.common.PDStream;
@@ -65,32 +68,34 @@ public final class PDInlineImage impleme
Map<String, PDColorSpace> colorSpaces) throws IOException
{
this.parameters = parameters;
- this.stream = createStream(data);
this.colorSpaces = colorSpaces;
- }
- private PDStream createStream(byte[] data) throws IOException
- {
+ DecodeResult decodeResult = null;
if (getFilters() == null)
{
- return new PDMemoryStream(data);
+ this.stream = new PDMemoryStream(data);
}
else
{
List<String> filters = getFilters();
ByteArrayInputStream in = new ByteArrayInputStream(data);
ByteArrayOutputStream out = new ByteArrayOutputStream(data.length);
- FilterManager filterManager = new FilterManager();
for (int i = 0; i < filters.size(); i++)
{
+ // TODO handling of abbreviated names belongs here, rather than in other classes
out.reset();
- Filter filter = filterManager.getFilter(filters.get(i));
- filter.decode(in, out, parameters.asUnmodifiableDictionary(), i);
+ Filter filter = FilterFactory.INSTANCE.getFilter(filters.get(i));
+ decodeResult = filter.decode(in, out, parameters, i);
in = new ByteArrayInputStream(out.toByteArray());
}
byte[] finalData = out.toByteArray();
+ this.stream = new PDMemoryStream(finalData);
+ }
- return new PDMemoryStream(finalData);
+ // repair parameters
+ if (decodeResult != null)
+ {
+ parameters.addAll(decodeResult.getParameters());
}
}
@@ -129,7 +134,7 @@ public final class PDInlineImage impleme
}
else
{
- // this method must not return null
+ // an image without a color space is always broken
throw new IOException("could not determine color space");
}
}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java Sun Feb 23 20:25:09 2014
@@ -16,8 +16,6 @@
*/
package org.apache.pdfbox.pdmodel.graphics.image;
-import java.awt.AlphaComposite;
-import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Point;
@@ -26,28 +24,11 @@ import java.awt.image.DataBuffer;
import java.awt.image.Raster;
import java.awt.image.WritableRaster;
import java.io.IOException;
-import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.pdfbox.cos.COSArray;
-import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.filter.MissingImageReaderException;
-import org.apache.pdfbox.pdmodel.common.PDRange;
-import org.apache.pdfbox.pdmodel.common.PDStream;
-import org.apache.pdfbox.pdmodel.graphics.color.PDCalGray;
-import org.apache.pdfbox.pdmodel.graphics.color.PDCalRGB;
import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceN;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
-import org.apache.pdfbox.pdmodel.graphics.color.PDICCBased;
-import org.apache.pdfbox.pdmodel.graphics.color.PDIndexed;
-import org.apache.pdfbox.pdmodel.graphics.color.PDJPXColorSpace;
-import org.apache.pdfbox.pdmodel.graphics.color.PDLab;
-import org.apache.pdfbox.pdmodel.graphics.color.PDPattern;
-import org.apache.pdfbox.pdmodel.graphics.color.PDSeparation;
import javax.imageio.stream.ImageInputStream;
import javax.imageio.stream.MemoryCacheImageInputStream;
@@ -124,8 +105,7 @@ final class SampledImageReader
{
if (pdImage.getStream().getLength() == 0)
{
- LOG.warn("Image has empty stream");
- return new BufferedImage(0, 0, BufferedImage.TYPE_INT_RGB);
+ throw new IOException("Image stream is empty");
}
// get parameters
@@ -219,14 +199,6 @@ final class SampledImageReader
decode = null;
}
- // JPX: decode shall be ignored, except when the image is treated as a mask
- if (pdImage.getStream().getFilters() != null &&
- pdImage.getStream().getFilters().contains(COSName.JPX_DECODE) &&
- !pdImage.isStencil())
- {
- decode = null;
- }
-
// otherwise, its length shall be twice the number of colour
// components required by ColorSpace
int n = pdImage.getColorSpace().getNumberOfComponents();
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSBase.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSBase.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSBase.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSBase.java Sun Feb 23 20:25:09 2014
@@ -19,7 +19,7 @@ package org.apache.pdfbox.cos;
import junit.framework.TestCase;
-import org.apache.pdfbox.filter.FilterManager;
+import org.apache.pdfbox.filter.FilterFactory;
/**
* Test class for {@link COSBase}.
@@ -30,14 +30,6 @@ public abstract class TestCOSBase extend
protected COSBase testCOSBase;
/**
- * Tests getFilterManager() - test that a filter manager is obtained... Not much to test here.
- */
- public void testGetFilterManager()
- {
- assertTrue(testCOSBase.getFilterManager() instanceof FilterManager);
- }
-
- /**
* Tests getCOSObject() - tests that the underlying object is returned.
*/
public void testGetCOSObject()
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/filter/TestFilters.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/filter/TestFilters.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/filter/TestFilters.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/filter/TestFilters.java Sun Feb 23 20:25:09 2014
@@ -26,13 +26,11 @@ import junit.framework.TestCase;
import org.apache.pdfbox.cos.COSDictionary;
-
/**
* This will test all of the filters in the PDFBox system.
*/
public class TestFilters extends TestCase
{
-
/**
* This will test all of the filters in the system.
*
@@ -74,9 +72,8 @@ public class TestFilters extends TestCas
}
}
}
-
- FilterManager manager = new FilterManager();
- for( Filter filter : manager.getFilters() )
+
+ for( Filter filter : FilterFactory.INSTANCE.getAllFilters() )
{
// Skip filters that don't currently support roundtripping
if( filter instanceof DCTFilter ||
@@ -89,14 +86,12 @@ public class TestFilters extends TestCas
}
ByteArrayOutputStream encoded = new ByteArrayOutputStream();
- filter.encode(
- new ByteArrayInputStream( original ),
- encoded, new COSDictionary(), 0 );
+ filter.encode(new ByteArrayInputStream( original ),
+ encoded, new COSDictionary() );
ByteArrayOutputStream decoded = new ByteArrayOutputStream();
- filter.decode(
- new ByteArrayInputStream( encoded.toByteArray() ),
- decoded, new COSDictionary().asUnmodifiableDictionary(), 0 );
+ filter.decode(new ByteArrayInputStream( encoded.toByteArray() ),
+ decoded, new COSDictionary() );
assertTrue(
"Data that is encoded and then decoded through "