Age | Commit message (Collapse) | Author |
|
The QPDF_String::getUTF8Val() method was not treating strings that
weren't explicitly Unicode as PDF Doc Encoded. This only affects
characters in the range 0x80 through 0xa0.
|
|
|
|
Give objects descriptions and context so it is possible to issue
warnings instead of fatal errors for attempts to access objects of the
wrong type.
|
|
As in other cases, this is to enable adding new member variables in
the future without breaking ABI compatibility.
|
|
Expose Pl_QPDFTokenizer, and have it do more of the work of managing
the token filter's pipeline.
|
|
|
|
|
|
Implement a TokenFilter class and refactor Pl_QPDFTokenizer to use a
TokenFilter class called ContentNormalizer. Pl_QPDFTokenizer is now a
general filter that passes data through a TokenFilter.
|
|
|
|
|
|
Remove a redundant method that was equal to another one with
additional arguments. This breaks binary compatibility, but there are
other ABI breaking changes in the upcoming release, so now is the time
to do it.
|
|
|
|
This is for protection against future ABI breaking changes.
|
|
Significant enhancements to the lexer to improve EOF handling and to
support comments and spaces as tokens. Various other minor issues were
fixed as well.
|
|
This is useful only for debugging the linearization code.
|
|
|
|
|
|
Add options to enable the raw encryption key to be directly shown or
specified. Thanks to Didier Stevens <didier.stevens@gmail.com> for the
idea and contribution of one implementation of this idea.
|
|
|
|
|
|
The Apache License version 2.0 is now the primary license for qpdf.
However, users may, at their option, continue to use Artistic version
2.0.
|
|
Tweak the message so that we inform the user that we are mitigating
data loss.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
Pushing member variables into a nested class enables addition of new
member variables without breaking binary compatibility.
|
|
|
|
Reduce code duplication
|
|
|
|
|
|
* Add support for PCLm using setPCLm() and writePCLm() methods in
QPDFWriter.hh and QPDFWriter.cc
* Add a function writePCLmHeader() for PCLm header in QPDFWriter
|
|
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.
|
|
Additional testing is added in later commits to be supported by
additional changes in the library.
|
|
|
|
|
|
Also accept more errors than before.
|
|
Eliminate PCRE and find endobj not preceded by endstream. Be more lax
about placement of endstream and endobj.
|
|
|
|
|
|
Preparing to refactor some pattern searching code to use these instead
of their own memchr loops. This should simplify the code that replaces
PCRE.
|
|
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.
|
|
|