diff --git a/src/core/stream.js b/src/core/stream.js index 08e731885..38a81d5cb 100644 --- a/src/core/stream.js +++ b/src/core/stream.js @@ -1787,6 +1787,7 @@ var CCITTFaxStream = (function CCITTFaxStreamClosure() { this.inputBits = 0; this.inputBuf = 0; this.outputBits = 0; + this.rowsDone = false; var code1; while ((code1 = this.lookBits(12)) === 0) { @@ -1872,6 +1873,9 @@ var CCITTFaxStream = (function CCITTFaxStreamClosure() { var refPos, blackPixels, bits, i; if (this.outputBits === 0) { + if (this.rowsDone) { + this.eof = true; + } if (this.eof) { return null; } @@ -2052,7 +2056,7 @@ var CCITTFaxStream = (function CCITTFaxStreamClosure() { } if (!this.eoblock && this.row === this.rows - 1) { - this.eof = true; + this.rowsDone = true; } else { code1 = this.lookBits(12); if (this.eoline) { @@ -2074,7 +2078,7 @@ var CCITTFaxStream = (function CCITTFaxStreamClosure() { } } - if (!this.eof && this.encoding > 0) { + if (!this.eof && this.encoding > 0 && !this.rowsDone) { this.nextLine2D = !this.lookBits(1); this.eatBits(1); } diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index f4d0713ad..080a6f510 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -297,3 +297,4 @@ !issue8097_reduced.pdf !transparent.pdf !xobject-image.pdf +!ccitt_EndOfBlock_false.pdf diff --git a/test/pdfs/ccitt_EndOfBlock_false.pdf b/test/pdfs/ccitt_EndOfBlock_false.pdf new file mode 100644 index 000000000..d3aa89aa2 Binary files /dev/null and b/test/pdfs/ccitt_EndOfBlock_false.pdf differ diff --git a/test/test_manifest.json b/test/test_manifest.json index eb37fd4a0..af3d64516 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -3693,5 +3693,11 @@ "rounds": 1, "link": true, "type": "eq" + }, + { "id": "ccitt_EndOfBlock_false", + "file": "pdfs/ccitt_EndOfBlock_false.pdf", + "md5": "ce718efe601cd7491dd00651b4790329", + "rounds": 1, + "type": "eq" } ]