-
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.
-
When parsing content streams, allow content to be split arbitrarily across stream boundaries.
-
Very badly corrupted files may not have a retrievable root dictionary. Handle that as a special case so that a more helpful error message can be provided.
-
When requested, QPDFWriter will do more aggress prechecking of streams to make sure it can actually succeed in decoding them before attempting to do so. This will allow preservation of raw data even when the raw data is corrupted relative to the specified filters.