-
While scanning the file looking for objects, limit the length of tokens we allow. This prevents us from getting caught up in reading a file character by character while digging through large streams.
-
A stray semicolon caused a condition to be incorrectly applied during stream length recovery.
-
Files written in PCLm mode have to be created in a very specific way. qpdf doesn't know how to create PCLm files from scratch. All it knows how to do is to write an already valid file in a suitable way. Therefore there is no command-line support for PCLm.
-
There is no need for a --precheck-streams option. We can do the precheck without imposing any penalty, only re-encoding the stream if it fails the first time.
-
This commit adds several API methods that enable control over which types of filters QPDF will attempt to decode. It also adds support for /RunLengthDecode and /DCTDecode filters for both encoding and decoding.
-
There was an unintended recoverable error in a test file. It wasn't hurting anything, but it was obscuring the actual intent of the test.
-
This is in preparation for implementing page groups.
-
Add a newline unconditionally before endstream even if a newline was already written as part of the stream data.
-
Bad /W in an xref stream could cause a division by zero error. Now this is handled as a special case.
-
Remove problematic test files
-
Also accept more errors than before.
-
Eliminate PCRE and find endobj not preceded by endstream. Be more lax about placement of endstream and endobj.
-
Sometimes we want to ignore bad tokens rather than having them throw an exception. A coverage case is commented out here and added in a later commit.
-
Also fix a bug resulting from incorrect use of PointerHolder because of this unused parameter.
-
Passed arguments to the constructor in the wrong order.
-
main() had gotten absurdly long. Split it into reasonable chunks. This refactoring is in preparation for handling splitting output into single pages.