Index: D:/svn/ossrepo/icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/Stream.java =================================================================== --- D:/svn/ossrepo/icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/Stream.java (revision 23192) +++ D:/svn/ossrepo/icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/Stream.java (revision ) @@ -1719,13 +1719,20 @@ CCITTFaxDecoder decoder = new CCITTFaxDecoder(1, columns, rows); decoder.setAlign(encodedByteAlign); // pick three three possible fax encoding. + try { - if (k == 0) { - decoder.decodeT41D(decodedStreamData, streamData, 0, rows); - } else if (k > 0) { - decoder.decodeT42D(decodedStreamData, streamData, 0, rows); - } else if (k < 0) { - decoder.decodeT6(decodedStreamData, streamData, 0, rows); - } + if (k == 0) { + decoder.decodeT41D(decodedStreamData, streamData, 0, rows); + } else if (k > 0) { + decoder.decodeT42D(decodedStreamData, streamData, 0, rows); + } else if (k < 0) { + decoder.decodeT6(decodedStreamData, streamData, 0, rows); + } + } catch (Exception e) { + logger.warning("Error decoding CCITTFax image k: " + k ); + // IText 5.03 doesn't correctly assign a k value for the deocde, + // as result we can try one more time using the T6. + decoder.decodeT6(decodedStreamData, streamData, 0, rows); + } // check the black is value flag, no one likes inverted colours. if (!blackIs1) { // toggle the byte data invert colour, not bit operand.