summaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDF.cc
AgeCommit message (Collapse)Author
2014-06-07Prepare 5.1.2 releaserelease-qpdf-5.1.2Jay Berkenbilt
2014-01-14Prepare 5.1.1 releaserelease-qpdf-5.1.1Jay Berkenbilt
2013-12-26Avoid traversing same object twice when copying objectsJay Berkenbilt
This is a performance fix. The output is unchanged. Fixes #28.
2013-12-17Prepare 5.1.0 releaserelease-qpdf-5.1.0Jay Berkenbilt
2013-12-14Allow arbitrary whitespace, not just newline, after xrefJay Berkenbilt
Fixes #27.
2013-11-29Include <algorithm> for std::min, std::maxJay Berkenbilt
2013-10-18Prepare for 5.0.1 releaserelease-qpdf-5.0.1Jay Berkenbilt
2013-10-18Security: replace operator[] with atJay Berkenbilt
For std::string and std::vector, replace operator[] with at. This was done using an automated process. See README.hardening for details.
2013-10-10Security: sanitize /W in xref streamJay Berkenbilt
The /W array was not sanitized, possibly causing an integer overflow in a multiplication. An analysis of the code suggests that there were no possible exploits based on this since the problems were in checking expected values but bounds checks were performed on actual values.
2013-07-10Prepare 5.0.0 releaserelease-qpdf-5.0.0Jay Berkenbilt
2013-07-10Change API/ABI and withdraw 4.2.0Jay Berkenbilt
4.2.0 was binary incompatible in spite of there being no deletions or changes to any public methods. As such, we have to bump the ABI and are fixing some API breakage while we're at it. Previous 4.3.0 target is now 5.1.0.
2013-07-08Prepare 4.2.0 releaserelease-qpdf-4.2.0Jay Berkenbilt
2013-06-15Handle more broken filesJay Berkenbilt
Space rather than newline after xref, missing /ID in trailer for encrypted file. This enables qpdf to handle some files that xpdf can handle. Adobe reader can't necessarily handle them.
2013-06-14Bug fix: handle generation > 0 when generating object streamsJay Berkenbilt
Rework QPDFWriter to always track old object IDs and QPDFObjGen instead of int, thus not discarding the generation number. Switch to QPDF::getCompressibleObjGen() to properly handle the case of an old object eligible for compression that has a generation of other than zero.
2013-06-14Use QPDFObjectHandle::getObjGen() where appropriateJay Berkenbilt
In internal code and examples, replace calls to getObjectID() and getGeneration() with calls to getObjGen() where possible.
2013-06-14Promote QPDF::ObjGen to top-level object QPDFObjGenJay Berkenbilt
2013-04-14Final preparation for 4.1.0 releaserelease-qpdf-4.1.0Jay Berkenbilt
2013-03-04Fix unused local variable warningsJay Berkenbilt
2013-03-04Remove all old-style casts from C++ codeJay Berkenbilt
2013-02-23Bug fix: properly handle overridden compressed objectsJay Berkenbilt
When caching objects in an object stream, only cache objects that still resolve to that stream. See Changelog mod from this commit for details.
2013-01-20Set version to 4.1.a0Jay Berkenbilt
Next released version will be 4.1.0 since new APIs are being added.
2013-01-17Prepare 4.0.1 releaserelease-qpdf-4.0.1Jay Berkenbilt
2013-01-03Set version number to 4.0.0+Jay Berkenbilt
2012-12-31Update versions for 4.0.0 releaserelease-qpdf-4.0.0Jay Berkenbilt
2012-12-31Fix spelling errorsJay Berkenbilt
Fixed spelling errors in previously published commits and update spelling dictionary
2012-12-31Support for encryption with /V=5 and /R=5 and /R=6Jay Berkenbilt
Read and write support is implemented for /V=5 with /R=5 as well as /R=6. /R=5 is the deprecated encryption method used by Acrobat IX. /R=6 is the encryption method used by PDF 2.0 from ISO 32000-2.
2012-12-31Support files with only attachments encryptedJay Berkenbilt
Test cases added in a future commit since they depend on /R=6 support.
2012-12-31Add ExtensionLevel support to version handlingJay Berkenbilt
All version operations are now fully aware of extension levels.
2012-12-31Eliminate flattenScalarReferencesJay Berkenbilt
2012-12-25Improve memory safety of finding PDF headerJay Berkenbilt
2012-12-25Find PDF header anywhere in the first 1024 bytesJay Berkenbilt
2012-11-20Ignore objects with offset 0Jay Berkenbilt
2012-09-23Allow reading from InputSource and writing to PipelineJay Berkenbilt
Allowing users to subclass InputSource and Pipeline to read and write from/to arbitrary sources provides the maximum flexibility for users who want to read and write from other than files or memory.
2012-09-23Indicate pre-release versionJay Berkenbilt
2012-09-06Prepare 3.0.2 releaserelease-qpdf-3.0.2Jay Berkenbilt
2012-08-11Prepare 3.0.1 releaserelease-qpdf-3.0.1Jay Berkenbilt
2012-08-02Update version to 3.0.0release-qpdf-3.0.0Jay Berkenbilt
2012-07-29Update documentation and version numbersJay Berkenbilt
3.0.rc1
2012-07-21Implement QPDFObjectHandle::parseJay Berkenbilt
Move object parsing code from QPDF to QPDFObjectHandle and parameterize the parts of it that are specific to a QPDF object. Provide a version that can't handle indirect objects and that can be called on an arbitrary string. A side effect of this change is that the offset used when reporting invalid stream length has changed, but since the new value seems like a better value than the old one, the test suite has been updated rather than making the code backward compatible. This only effects the offset reported for invalid streams that lack /Length or have an invalid /Length key. Updated some test code and exmaples to use QPDFObjectHandle::parse. Supporting changes include adding a BufferInputSource constructor that takes a string.
2012-07-21Move readToken from QPDF to QPDFTokenizerJay Berkenbilt
2012-07-21Refactor: pull *InputSource out of QPDFJay Berkenbilt
InputSource, FileInputSource, and BufferInputSource are now top-level classes instead of privately nested inside QPDF.
2012-07-18Prevent seeking before beginning of BufferInputSourceJay Berkenbilt
2012-07-11Support copying objects from another QPDF objectJay Berkenbilt
This includes QPDF::copyForeignObject and supporting foreign objects as arguments to addPage*.
2012-07-11Add concept of reserved objectsJay Berkenbilt
QPDFObjectHandle::{new,is,assert}Reserved, QPDF::replaceReserved provide a mechanism to add objects to a PDF file when there are circular references. This is a prerequisite to copying objects from one PDF to another.
2012-06-27Rework InputSource::readLine to make it much more efficientJay Berkenbilt
This rework makes xref reconstruction run much faster and use much less memory.
2012-06-27Rename seek functions in QUtilJay Berkenbilt
2012-06-26Set version to 3.0.a0Jay Berkenbilt
2012-06-25Fix large file support for 32-bit LinuxJay Berkenbilt
2012-06-24Fix and test support for files >= 4 GBJay Berkenbilt
2012-06-24Change QPDF_Integer from int to long longJay Berkenbilt
This makes it possible to store offsets that are larger than 2 GB in the trailer dictionary.