aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/qpdf
AgeCommit message (Collapse)Author
2018-02-19Use space tokens in tokenizer filterJay Berkenbilt
2018-02-19Use inline image token type in tokenizer filterJay Berkenbilt
2018-01-14Add Pl_TIFFPredictorJay Berkenbilt
2018-01-14Add signed support to BitStream and BitWriterJay Berkenbilt
2018-01-14Minor fixes to Pl_PNGFilterJay Berkenbilt
Fix comment, remove restriction that doesn't actually matter.
2017-12-25Correct errors in PNG filters and make use from libraryJay Berkenbilt
2017-12-25Initial implementation of other PNG decode filtersCasey Rojas
Initial implementation provided by Casey Rojas <crojas@infotechfl.com> Some problems are fixed in a subsequent commit.
2017-09-12Improve message for stream decoding errorJay Berkenbilt
Tweak the message so that we inform the user that we are mitigating data loss.
2017-08-29Clean up circular references in QPDF_StreamJay Berkenbilt
2017-08-21Enable finer grained control of stream decodingJay Berkenbilt
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.
2017-08-11Remove PCREJay Berkenbilt
2017-07-28Add precheck streams capabilityJay Berkenbilt
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.
2017-07-28Convert stream filtering errors to warningsJay Berkenbilt
2015-10-31Implement deterministic IDJay Berkenbilt
For non-encrypted files, determinstic ID generation uses file contents instead of timestamp and file name. At a small runtime cost, this enables generation of the same /ID if the same inputs are converted in the same way multiple times.
2013-12-14Refactor random data generationJay Berkenbilt
Add new RandomDataProvider object and implement existing random number generation in terms of that. This enables end users to supply their own random data providers.
2013-01-23Cosmetic changes to be closer to Adobe terminologyJay Berkenbilt
Change object type Keyword to Operator, and place the order of the object types in object_type_e in the same order as they are mentioned in the PDF specification. Note that this change only breaks backward compatibility with code that has not yet been released.
2013-01-22Add getTypeCode() and getTypeName()Jay Berkenbilt
Add virtual methods to QPDFObject, wrappers to QPDFObjectHandle, and implementations to all the QPDF_Object types.
2013-01-20Added new QPDFObjectHandle types Keyword and InlineImageJay Berkenbilt
These object types are to facilitate content stream parsing.
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-31SHA2 pipeline with support for 256, 384, and 512 bitsJay Berkenbilt
Implemented pipeline around sph sha calls using standard test vectors for full-byte values. Did not test or support partial byte values.
2012-12-31Allow specification of AES initialization vectorJay Berkenbilt
2012-12-31Update AES classes to work with 256-bit keysJay Berkenbilt
2012-12-25Find PDF header anywhere in the first 1024 bytesJay Berkenbilt
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-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-07-08Fix: make unparse virtual for Null and RealJay Berkenbilt
2012-07-07Don't require stream data provider to know length in advanceJay Berkenbilt
Breaking API change: length parameter has disappeared from the StreamDataProvider version of QPDFObjectHandle::replaceStreamData since it is no longer necessary to compute it in advance. This breaking change is justified by the fact that removing the length parameter provides the caller an opportunity to simplify the calling code.
2012-06-27Add QPDFObjectHandle::newReal(double)Tobias Hoffmann
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.
2012-06-22Use qpdf_offset_t in place of off_t in public APIs.Jay Berkenbilt
off_t is used internally only when needed to talk to standard libraries. This requires that the "long long" type be supported by the compiler.
2012-06-21fix include order for off_tJay Berkenbilt
2012-06-20Added additional array mutatorsTobias Hoffmann
Added methods to append to arrays, insert items into arrays, and replace array contents with a vector of items.
2012-06-20ABI change: fix use of off_t, size_t, and integer typesJay Berkenbilt
Significantly improve the code's use of off_t for file offsets, size_t for memory sizes, and integer types in cases where there has to be compatibility with external interfaces. Rework sections of the code that would have prevented qpdf from working on files larger than 2 (or maybe 4) GB in size.
2011-12-28fix MSVC 2010 issuesJay Berkenbilt
2011-08-10implement methods to get dictionary and array contents as map and vectorJay Berkenbilt
2011-04-30be less conservative when skipping over inline images in content normalizationJay Berkenbilt
git-svn-id: svn+q:///qpdf/trunk@1050 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-09-05handle stream filter abbreviations from table H.1Jay Berkenbilt
git-svn-id: svn+q:///qpdf/trunk@1025 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-10getRawStreamData()Jay Berkenbilt
git-svn-id: svn+q:///qpdf/trunk@1010 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-05newStreamJay Berkenbilt
git-svn-id: svn+q:///qpdf/trunk@991 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-05add pipeline-based stream data replacement functionJay Berkenbilt
git-svn-id: svn+q:///qpdf/trunk@990 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-03remove stream_data_handler; it wouldn't work as designed. replacement data ↵Jay Berkenbilt
implemented but not tested git-svn-id: svn+q:///qpdf/trunk@988 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-03ready to implement replacement stream dataJay Berkenbilt
git-svn-id: svn+q:///qpdf/trunk@987 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-06-06fix memory leakJay Berkenbilt
git-svn-id: svn+q:///qpdf/trunk@976 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-12-142.1.1 -- gcc 4.4 fixesJay Berkenbilt
git-svn-id: svn+q:///qpdf/trunk@925 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-21tweak dll stuff againJay Berkenbilt
git-svn-id: svn+q:///qpdf/trunk@851 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-21go back to function-based DLL_EXPORT rather than class-based to avoid ↵Jay Berkenbilt
creation of export files with executables under msvc git-svn-id: svn+q:///qpdf/trunk@849 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-20qpdf-configJay Berkenbilt
git-svn-id: svn+q:///qpdf/trunk@847 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-19DLL.hh -> DLL.h, move public enumerated types into Constants.h and use them ↵Jay Berkenbilt
both for C and C++ interfaces git-svn-id: svn+q:///qpdf/trunk@828 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-19add C API for R4 encryptionJay Berkenbilt
git-svn-id: svn+q:///qpdf/trunk@825 71b93d88-0707-0410-a8cf-f5a4172ac649