You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2014/03/26 00:50:08 UTC

svn commit: r1581603 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter: CCITTFaxFilter.java ccitt/TIFFFaxDecoder.java

Author: tilman
Date: Tue Mar 25 23:50:07 2014
New Revision: 1581603

URL: http://svn.apache.org/r1581603
Log:
PDFBOX-1074: implemented EncodedByteAlign = true for T6decode

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxFilter.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/ccitt/TIFFFaxDecoder.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxFilter.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxFilter.java?rev=1581603&r1=1581602&r2=1581603&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxFilter.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxFilter.java Tue Mar 25 23:50:07 2014
@@ -91,6 +91,7 @@ final class CCITTFaxFilter extends Filte
 
         // decompress data
         int k = decodeParms.getInt(COSName.K, 0);
+        boolean encodedByteAlign = decodeParms.getBoolean(COSName.ENCODED_BYTE_ALIGN, false);
         int arraySize = (cols + 7) / 8 * rows;
         TIFFFaxDecoder faxDecoder = new TIFFFaxDecoder(1, cols, rows);
         // TODO possible options??
@@ -112,7 +113,7 @@ final class CCITTFaxFilter extends Filte
         else if (k < 0)
         {
             decompressed = new byte[arraySize];
-            faxDecoder.decodeT6(decompressed, compressed, 0, rows, tiffOptions);
+            faxDecoder.decodeT6(decompressed, compressed, 0, rows, tiffOptions, encodedByteAlign);
         }
 
         // invert bitmap

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/ccitt/TIFFFaxDecoder.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/ccitt/TIFFFaxDecoder.java?rev=1581603&r1=1581602&r2=1581603&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/ccitt/TIFFFaxDecoder.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/ccitt/TIFFFaxDecoder.java Tue Mar 25 23:50:07 2014
@@ -881,7 +881,8 @@ public final class TIFFFaxDecoder {
                                       byte[] compData,
                                       int startX,
                                       int height,
-                                      long tiffT6Options) {
+                                      long tiffT6Options,
+                                      boolean encodedByteAlign) {
         this.data = compData;
         compression = 4;
 
@@ -918,6 +919,11 @@ public final class TIFFFaxDecoder {
         int bitOffset;
 
         for (int lines = 0; lines < height; lines++) {
+            if (encodedByteAlign && bitPointer != 0)
+            {
+                bitPointer = 0;
+                bytePointer++;
+            }
             // a0 has to be set just before the start of the scanline.
             a0 = -1;
             isWhite = true;