aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf
AgeCommit message (Collapse)Author
2018-08-13Catch exceptions as const references (fixes #236)Jay Berkenbilt
This fix allows qpdf to compile/test cleanly with gcc 8.
2018-08-06Fix EOL handling inside strings (fixes #226)Jay Berkenbilt
CR, CRLF, and LF are all supposed to be treated as LF; only one EOL is to be ignored after backslash.
2018-08-05Fix infinite loop on small files with progress reporting (fixes #230)Jay Berkenbilt
Turns out you can keep adding zero to a number over and over again and it just doesn't get any bigger. Who would have known?
2018-08-05Keep file open while adding its pages during merge (fixes #217)Jay Berkenbilt
2018-06-23Bug fix: honor encryption key length with R=3 (fixes #212)Jay Berkenbilt
2018-06-22Add tests for progress and verbose changesJay Berkenbilt
2018-06-22With --verbose, give information on processing merge inputsJay Berkenbilt
2018-06-22Add progress reporting for QPDFWriter (fixes #200)Jay Berkenbilt
2018-06-22Use ClosedFileInputSource when merging files (fixes #154)Jay Berkenbilt
2018-06-22Don't prune resource dictionaries on errors or by requestJay Berkenbilt
If we are unable to filter a page's content streams, don't attempt to remove objects from the page's resource dictionary. Also provide a command line option to suppress resource removal in case we ever need this as a workaround for some bug or broken PDF files.
2018-06-22Treat content stream parsing errors as an error, not a warningJay Berkenbilt
If parsing content streams is treated as a warning, there is no way for a caller to know if a parsing operation has failed. This is very dangerous and will likely result in data loss when token filters are parser callbacks are in use.
2018-06-22When splitting files, remove unreferenced objects (fixes #203)Jay Berkenbilt
2018-06-22Fix QPDFObjectHandle::shallowCopyJay Berkenbilt
It's not really a shallow copy. It just doesn't cross indirect object boundaries. The old implementation had a bug that would cause multiple shallow copies of the same object to share memory, which was not the intention.
2018-06-21Make page range optional in --rotate (fixes #211)Jay Berkenbilt
2018-06-21Allow setting a form field's valueJay Berkenbilt
2018-06-21Better support for creating Unicode stringsJay Berkenbilt
2018-06-21Implement helper class for interactive formsJay Berkenbilt
2018-06-21Convert command-line and test suite to use page helper classesJay Berkenbilt
This provides better test coverage and more useful code for people to read and copy.
2018-06-21Add QPDFObjectHandle::Rectangle typeJay Berkenbilt
Provide a convenient way of accessing rectangles.
2018-05-12newline before endstream fix for object streams (fixes #205)Jay Berkenbilt
2018-05-05doc: point out use of @filename for specifying password (fixes #198)Jay Berkenbilt
2018-04-15Limit depth of nesting in direct objects (fixes #202)Jay Berkenbilt
This fixes CVE-2018-9918.
2018-03-06Properly handle pages with no contents (fixes #194)Jay Berkenbilt
Remove calls to assertPageObject(). All cases in the library that called assertPageObject() work fine if you don't call assertPageObject() because nothing assumes anything that was being checked by that call. Removing the calls enables more files to be successfully processed.
2018-03-05Treat loop in xref tables as damage (fixes #192)Jay Berkenbilt
Prior to this fix, if there was a loop detected in following /Prev pointers in xref streams/tables, it would cause qpdf to lose data. Note that this condition causes many PDF readers to hang or fail.
2018-03-04Support "r" in page ranges (fixes #155)Jay Berkenbilt
2018-03-03Ignore zlib data check errors (fixes #191)Jay Berkenbilt
2018-02-25Spell checkJay Berkenbilt
2018-02-25Separate copyright notice from --version optionJay Berkenbilt
2018-02-19Properly handle strings with PDF Doc Encoding (fixes #179)Jay Berkenbilt
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.
2018-02-19Add C API for checking PDF filesJay Berkenbilt
2018-02-19Reorganize some test casesJay Berkenbilt
Too many test cases were "miscellaneous".
2018-02-19More robust handling of type errorsJay Berkenbilt
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.
2018-02-19Replace "file position" with "offset" in error messagesJay Berkenbilt
Sometimes it's an offset in an object stream or a content stream, so file position is confusing in some cases.
2018-02-19Include omitted object description in error messageJay Berkenbilt
2018-02-19Include filename in object stream parse errorJay Berkenbilt
2018-02-19Simplify TokenFilter interfaceJay Berkenbilt
Expose Pl_QPDFTokenizer, and have it do more of the work of managing the token filter's pipeline.
2018-02-19Detect and report bad tokens in content normalizationJay Berkenbilt
2018-02-19Implement TokenFilter and refactor Pl_QPDFTokenizerJay Berkenbilt
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.
2018-02-19Add coalesce contents capabilityJay Berkenbilt
2018-02-19Bug fix: content normalizer should not add trailing newlineJay Berkenbilt
Adding a trailing newline in content normalization damages files whose contents are split across streams in the middle of tokens. Let QPDFWriter add the newline with the indicator to ignore the newline, which it already does. This changes the way some qdf files look.
2018-02-19Use pipePageContents in tokenizer testJay Berkenbilt
2018-02-19Switch from parseContentStream to parsePageContentsJay Berkenbilt
2018-02-19Refactor parseContentStreamJay Berkenbilt
2018-02-19Use inline image token type in tokenizer filterJay Berkenbilt
2018-02-19Inline image token typeJay Berkenbilt
2018-02-19Lexer enhancements: EOF, comment, spaceJay Berkenbilt
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.
2018-02-19Create isolated tokenizer testsJay Berkenbilt
This tokenizes outer parts of the file, page content streams, and object streams. It is for exercising the tokenizer in isolation and is being introduced before reworking the lexical layer of qpdf.
2018-02-19Add option to save pass 1 of lineariziationJay Berkenbilt
This is useful only for debugging the linearization code.
2018-02-05Fix linearization for files with nonstandard ID lengthJay Berkenbilt
2018-01-29Test stream that ends with name token and no newlineJay Berkenbilt