Author: lehmi Date: Sun May 13 13:55:11 2012 New Revision: 1337885 URL: http://svn.apache.org/viewvc?rev=1337885&view=rev Log: PDFBOX-457: use the correct index to get the decode parameter from the COSArray
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxDecodeFilter.java pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDCcitt.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxDecodeFilter.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxDecodeFilter.java?rev=1337885&r1=1337884&r2=1337885&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxDecodeFilter.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxDecodeFilter.java Sun May 13 13:55:11 2012 @@ -67,7 +67,7 @@ public class CCITTFaxDecodeFilter implem } else if (decodeP instanceof COSArray) { - decodeParms = (COSDictionary)((COSArray)decodeP).get(0); + decodeParms = (COSDictionary)((COSArray)decodeP).get(filterIndex); } int length = options.getInt(COSName.LENGTH, -1); byte[] compressed = null; Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDCcitt.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDCcitt.java?rev=1337885&r1=1337884&r2=1337885&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDCcitt.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDCcitt.java Sun May 13 13:55:11 2012 @@ -113,7 +113,23 @@ public class PDCcitt extends PDXObjectIm } else if (decodeP instanceof COSArray) { - decodeParms = (COSDictionary)((COSArray)decodeP).get(0); + int index = 0; + // determine the index for the CCITT-filter + COSBase filters = stream.getFilters(); + if (filters instanceof COSArray) + { + COSArray filterArray = (COSArray)filters; + while (index < filterArray.size()) + { + COSName filtername = (COSName)filterArray.get(index); + if (COSName.CCITTFAX_DECODE.equals(filtername)) + { + break; + } + index++; + } + } + decodeParms = (COSDictionary)((COSArray)decodeP).get(index); } int cols = decodeParms.getInt(COSName.COLUMNS, 1728); int rows = decodeParms.getInt(COSName.ROWS, 0);