Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-08-13 | Catch exceptions as const references (fixes #236) | Jay Berkenbilt | |
This fix allows qpdf to compile/test cleanly with gcc 8. | |||
2018-08-06 | Fix 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-05 | Fix 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-05 | Keep file open while adding its pages during merge (fixes #217) | Jay Berkenbilt | |
2018-06-23 | Bug fix: honor encryption key length with R=3 (fixes #212) | Jay Berkenbilt | |
2018-06-22 | Add tests for progress and verbose changes | Jay Berkenbilt | |
2018-06-22 | With --verbose, give information on processing merge inputs | Jay Berkenbilt | |
2018-06-22 | Add progress reporting for QPDFWriter (fixes #200) | Jay Berkenbilt | |
2018-06-22 | Use ClosedFileInputSource when merging files (fixes #154) | Jay Berkenbilt | |
2018-06-22 | Don't prune resource dictionaries on errors or by request | Jay 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-22 | Treat content stream parsing errors as an error, not a warning | Jay 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-22 | When splitting files, remove unreferenced objects (fixes #203) | Jay Berkenbilt | |
2018-06-22 | Fix QPDFObjectHandle::shallowCopy | Jay 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-21 | Make page range optional in --rotate (fixes #211) | Jay Berkenbilt | |
2018-06-21 | Allow setting a form field's value | Jay Berkenbilt | |
2018-06-21 | Better support for creating Unicode strings | Jay Berkenbilt | |
2018-06-21 | Implement helper class for interactive forms | Jay Berkenbilt | |
2018-06-21 | Convert command-line and test suite to use page helper classes | Jay Berkenbilt | |
This provides better test coverage and more useful code for people to read and copy. | |||
2018-06-21 | Add QPDFObjectHandle::Rectangle type | Jay Berkenbilt | |
Provide a convenient way of accessing rectangles. | |||
2018-05-12 | newline before endstream fix for object streams (fixes #205) | Jay Berkenbilt | |
2018-05-05 | doc: point out use of @filename for specifying password (fixes #198) | Jay Berkenbilt | |
2018-04-15 | Limit depth of nesting in direct objects (fixes #202) | Jay Berkenbilt | |
This fixes CVE-2018-9918. | |||
2018-03-06 | Properly 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-05 | Treat 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-04 | Support "r" in page ranges (fixes #155) | Jay Berkenbilt | |
2018-03-03 | Ignore zlib data check errors (fixes #191) | Jay Berkenbilt | |
2018-02-25 | Spell check | Jay Berkenbilt | |
2018-02-25 | Separate copyright notice from --version option | Jay Berkenbilt | |
2018-02-19 | Properly 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-19 | Add C API for checking PDF files | Jay Berkenbilt | |
2018-02-19 | Reorganize some test cases | Jay Berkenbilt | |
Too many test cases were "miscellaneous". | |||
2018-02-19 | More robust handling of type errors | Jay 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-19 | Replace "file position" with "offset" in error messages | Jay Berkenbilt | |
Sometimes it's an offset in an object stream or a content stream, so file position is confusing in some cases. | |||
2018-02-19 | Include omitted object description in error message | Jay Berkenbilt | |
2018-02-19 | Include filename in object stream parse error | Jay Berkenbilt | |
2018-02-19 | Simplify TokenFilter interface | Jay Berkenbilt | |
Expose Pl_QPDFTokenizer, and have it do more of the work of managing the token filter's pipeline. | |||
2018-02-19 | Detect and report bad tokens in content normalization | Jay Berkenbilt | |
2018-02-19 | Implement TokenFilter and refactor Pl_QPDFTokenizer | Jay 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-19 | Add coalesce contents capability | Jay Berkenbilt | |
2018-02-19 | Bug fix: content normalizer should not add trailing newline | Jay 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-19 | Use pipePageContents in tokenizer test | Jay Berkenbilt | |
2018-02-19 | Switch from parseContentStream to parsePageContents | Jay Berkenbilt | |
2018-02-19 | Refactor parseContentStream | Jay Berkenbilt | |
2018-02-19 | Use inline image token type in tokenizer filter | Jay Berkenbilt | |
2018-02-19 | Inline image token type | Jay Berkenbilt | |
2018-02-19 | Lexer enhancements: EOF, comment, space | Jay 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-19 | Create isolated tokenizer tests | Jay 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-19 | Add option to save pass 1 of lineariziation | Jay Berkenbilt | |
This is useful only for debugging the linearization code. | |||
2018-02-05 | Fix linearization for files with nonstandard ID length | Jay Berkenbilt | |
2018-01-29 | Test stream that ends with name token and no newline | Jay Berkenbilt | |