Jay Berkenbilt
30a0c070e4
Add QPDFObjectHandle::getJSON()
2018-12-21 18:34:56 -05:00
Jay Berkenbilt
d1368a3851
Commit automatically generated files
2018-10-11 17:27:54 -04:00
Jay Berkenbilt
60fe8061cb
Fix one more identifier ( fixes #236 )
2018-08-12 22:01:51 -04:00
Jay Berkenbilt
3873f5fd9b
Protect headers with compliant identifiers ( fixes #233 )
2018-08-12 14:10:32 -04:00
Jay Berkenbilt
952a665a4e
Better support for creating Unicode strings
2018-06-21 15:57:13 -04:00
Jay Berkenbilt
d0e99f195a
More robust handling of type errors
...
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-18 21:06:27 -05:00
Jay Berkenbilt
e410b0fe0d
Simplify TokenFilter interface
...
Expose Pl_QPDFTokenizer, and have it do more of the work of managing
the token filter's pipeline.
2018-02-18 21:05:47 -05:00
Jay Berkenbilt
1fdd86a049
Move Pl_QPDFTokenizer to public interface
2018-02-18 21:05:47 -05:00
Jay Berkenbilt
fd02944e19
Clean up comment
2018-02-18 21:05:47 -05:00
Jay Berkenbilt
5136238f2a
Detect and report bad tokens in content normalization
2018-02-18 21:05:47 -05:00
Jay Berkenbilt
9910104442
Implement TokenFilter and refactor Pl_QPDFTokenizer
...
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-18 21:05:46 -05:00
Jay Berkenbilt
ba453ba4ff
Use space tokens in tokenizer filter
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
ec538792fa
Use inline image token type in tokenizer filter
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
53971d50be
Add Pl_TIFFPredictor
2018-01-13 19:49:42 -05:00
Jay Berkenbilt
d9c9049708
Add signed support to BitStream and BitWriter
2018-01-13 19:49:42 -05:00
Jay Berkenbilt
661ed1d28e
Minor fixes to Pl_PNGFilter
...
Fix comment, remove restriction that doesn't actually matter.
2018-01-13 19:49:42 -05:00
Jay Berkenbilt
a3a55be9cd
Correct errors in PNG filters and make use from library
2017-12-25 14:24:48 -05:00
Casey Rojas
9a48720246
Initial implementation of other PNG decode filters
...
Initial implementation provided by Casey Rojas <crojas@infotechfl.com>
Some problems are fixed in a subsequent commit.
2017-12-24 22:59:51 -05:00
Jay Berkenbilt
d31a7b76e7
Improve message for stream decoding error
...
Tweak the message so that we inform the user that we are mitigating
data loss.
2017-09-12 16:03:48 -04:00
Jay Berkenbilt
c6872d2c70
Clean up circular references in QPDF_Stream
2017-08-28 22:16:31 -04:00
Jay Berkenbilt
9744414c66
Enable finer grained control of stream decoding
...
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-21 17:44:22 -04:00
Jay Berkenbilt
9a96e233b0
Remove PCRE
2017-08-10 21:30:32 -04:00
Jay Berkenbilt
7f8892525f
Add precheck streams capability
...
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-27 23:42:27 -04:00
Jay Berkenbilt
a4fd4b91c6
Convert stream filtering errors to warnings
2017-07-27 18:43:07 -04:00
Jay Berkenbilt
b8bdef0ad1
Implement deterministic ID
...
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.
2015-10-31 18:56:42 -04:00
Jay Berkenbilt
5e3bad2f86
Refactor random data generation
...
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-12-14 15:17:35 -05:00
Jay Berkenbilt
bfda717749
Cosmetic changes to be closer to Adobe terminology
...
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-23 09:38:05 -05:00
Jay Berkenbilt
913eb5ac35
Add getTypeCode() and getTypeName()
...
Add virtual methods to QPDFObject, wrappers to QPDFObjectHandle, and
implementations to all the QPDF_Object types.
2013-01-22 10:01:45 -05:00
Jay Berkenbilt
1d88955fa6
Added new QPDFObjectHandle types Keyword and InlineImage
...
These object types are to facilitate content stream parsing.
2013-01-20 15:35:39 -05:00
Jay Berkenbilt
93ac1695a4
Support files with only attachments encrypted
...
Test cases added in a future commit since they depend on /R=6 support.
2012-12-31 10:32:32 -05:00
Jay Berkenbilt
0873e42300
SHA2 pipeline with support for 256, 384, and 512 bits
...
Implemented pipeline around sph sha calls using standard test vectors
for full-byte values. Did not test or support partial byte values.
2012-12-31 05:36:51 -05:00
Jay Berkenbilt
3680922ae5
Allow specification of AES initialization vector
2012-12-31 05:36:50 -05:00
Jay Berkenbilt
9b42f526df
Update AES classes to work with 256-bit keys
2012-12-31 05:36:50 -05:00
Jay Berkenbilt
7f84239cad
Find PDF header anywhere in the first 1024 bytes
2012-12-25 14:43:37 -05:00
Jay Berkenbilt
6bbea4baa0
Implement QPDFObjectHandle::parse
...
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-21 09:06:10 -04:00
Jay Berkenbilt
8a217eb3a2
Add concept of reserved objects
...
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-10 23:34:32 -04:00
Jay Berkenbilt
1dc25c0217
Fix: make unparse virtual for Null and Real
2012-07-08 16:01:12 -04:00
Jay Berkenbilt
e2dedde4bd
Don't require stream data provider to know length in advance
...
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-07-07 17:33:45 -04:00
Tobias Hoffmann
75054c0b94
Add QPDFObjectHandle::newReal(double)
2012-06-27 10:19:01 -04:00
Jay Berkenbilt
8318d81ada
Fix and test support for files >= 4 GB
2012-06-24 15:56:50 -04:00
Jay Berkenbilt
781c313058
Change QPDF_Integer from int to long long
...
This makes it possible to store offsets that are larger than 2 GB in
the trailer dictionary.
2012-06-24 15:20:01 -04:00
Jay Berkenbilt
81e8752362
Use qpdf_offset_t in place of off_t in public APIs.
...
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-21 21:23:24 -04:00
Jay Berkenbilt
f59ff6fcc2
fix include order for off_t
2012-06-21 14:11:22 -04:00
Tobias Hoffmann
db7474e0fa
Added additional array mutators
...
Added methods to append to arrays, insert items into arrays, and
replace array contents with a vector of items.
2012-06-20 15:29:44 -04:00
Jay Berkenbilt
5d4cad9c02
ABI change: fix use of off_t, size_t, and integer types
...
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.
2012-06-20 15:20:26 -04:00
Jay Berkenbilt
92f0207de8
fix MSVC 2010 issues
2011-12-28 16:40:33 -05:00
Jay Berkenbilt
655c55f848
implement methods to get dictionary and array contents as map and vector
2011-08-10 13:33:58 -04:00
Jay Berkenbilt
6405d3928f
be less conservative when skipping over inline images in content normalization
...
git-svn-id: svn+q:///qpdf/trunk@1050 71b93d88-0707-0410-a8cf-f5a4172ac649
2011-04-30 18:20:35 +00:00
Jay Berkenbilt
b1e0dcff16
handle stream filter abbreviations from table H.1
...
git-svn-id: svn+q:///qpdf/trunk@1025 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-09-05 15:00:44 +00:00
Jay Berkenbilt
bd7261da9b
getRawStreamData()
...
git-svn-id: svn+q:///qpdf/trunk@1010 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-09 23:33:40 +00:00
Jay Berkenbilt
6f2bd7eb3a
newStream
...
git-svn-id: svn+q:///qpdf/trunk@991 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-05 20:20:52 +00:00
Jay Berkenbilt
11df7809af
add pipeline-based stream data replacement function
...
git-svn-id: svn+q:///qpdf/trunk@990 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-05 19:04:22 +00:00
Jay Berkenbilt
998a6cbee9
remove stream_data_handler; it wouldn't work as designed. replacement data implemented but not tested
...
git-svn-id: svn+q:///qpdf/trunk@988 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-02 22:40:52 +00:00
Jay Berkenbilt
9a06fc541c
ready to implement replacement stream data
...
git-svn-id: svn+q:///qpdf/trunk@987 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-02 22:17:01 +00:00
Jay Berkenbilt
9496b2cb20
fix memory leak
...
git-svn-id: svn+q:///qpdf/trunk@976 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-06-06 13:32:08 +00:00
Jay Berkenbilt
8fbba4d48c
2.1.1 -- gcc 4.4 fixes
...
git-svn-id: svn+q:///qpdf/trunk@925 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-12-14 02:35:31 +00:00
Jay Berkenbilt
27ee889c0e
tweak dll stuff again
...
git-svn-id: svn+q:///qpdf/trunk@851 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-21 01:45:13 +00:00
Jay Berkenbilt
748ab301d4
go back to function-based DLL_EXPORT rather than class-based to avoid creation of export files with executables under msvc
...
git-svn-id: svn+q:///qpdf/trunk@849 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-21 00:27:24 +00:00
Jay Berkenbilt
93ba34b17b
qpdf-config
...
git-svn-id: svn+q:///qpdf/trunk@847 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-20 02:46:41 +00:00
Jay Berkenbilt
b67a3c15e7
DLL.hh -> DLL.h, move public enumerated types into Constants.h and use them both for C and C++ interfaces
...
git-svn-id: svn+q:///qpdf/trunk@828 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-19 20:17:14 +00:00
Jay Berkenbilt
a8715c495b
add C API for R4 encryption
...
git-svn-id: svn+q:///qpdf/trunk@825 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-19 00:36:51 +00:00
Jay Berkenbilt
e25910b59a
reading crypt filters is largely implemented but not fully tested
...
git-svn-id: svn+q:///qpdf/trunk@812 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-17 23:37:55 +00:00
Jay Berkenbilt
c13bc66de8
checkpoint -- partially implemented /V=4 encryption
...
git-svn-id: svn+q:///qpdf/trunk@811 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-17 18:54:51 +00:00
Jay Berkenbilt
55e400376a
got working aes128 implementation
...
git-svn-id: svn+q:///qpdf/trunk@809 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-17 15:01:20 +00:00
Jay Berkenbilt
2c3b6a5c9b
original rijndael as downloaded from http://www.efgh.com/software/rijndael.htm
...
git-svn-id: svn+q:///qpdf/trunk@808 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-17 14:53:02 +00:00
Jay Berkenbilt
846c9f6bcc
checkpoint -- started doing some R4 encryption support
...
git-svn-id: svn+q:///qpdf/trunk@807 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-17 03:14:47 +00:00
Jay Berkenbilt
f71eb2af91
fix class-level DLL_EXPORT
...
git-svn-id: svn+q:///qpdf/trunk@797 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-12 01:18:19 +00:00
Jay Berkenbilt
44cbd3d4b4
do DLL_EXPORT only in header files and only at the class or top-level function level
...
git-svn-id: svn+q:///qpdf/trunk@796 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-12 01:15:55 +00:00
Jay Berkenbilt
1285fa19d6
don't dll export inline functions
...
git-svn-id: svn+q:///qpdf/trunk@716 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-09-27 02:06:09 +00:00
Jay Berkenbilt
f3d7c26de1
removed qexc; non-compatible ABI change
...
git-svn-id: svn+q:///qpdf/trunk@709 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-09-26 18:36:04 +00:00
Jay Berkenbilt
33dbe43e4e
include DLL.hh
...
git-svn-id: svn+q:///qpdf/trunk@698 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-09-26 15:19:12 +00:00
Jay Berkenbilt
492db82f6f
more dll exports
...
git-svn-id: svn+q:///qpdf/trunk@697 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-09-26 15:15:33 +00:00
Jay Berkenbilt
b6af616dea
dll-export functions for library test suite
...
git-svn-id: svn+q:///qpdf/trunk@696 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-09-26 15:01:30 +00:00
Jay Berkenbilt
a9987ab570
Fix a few compiler errors reported correctly my MSVC 9.0.
...
Fix libtests test suites to pass on Windows, mostly by dealing with
ascii vs. binary and NL vs. CRNL change ($td->NORMALIZE_NEWLINES).
Convert some test suites to use fread instead of read.
PCRE.hh: define PCRE_STATIC if on Windows.
Provide cross-platform function for getting current time instead of
using time(0).
git-svn-id: svn+q:///qpdf/trunk@678 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-07-12 22:52:13 +00:00
Jay Berkenbilt
9851f92c53
fix header symbol
...
git-svn-id: svn+q:///qpdf/trunk@671 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-04-25 01:39:17 +00:00
Jay Berkenbilt
91cb7c0a58
fix many typos in comments and strings
...
git-svn-id: svn+q:///qpdf/trunk@651 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-02-21 02:54:31 +00:00
Jay Berkenbilt
7665fc3d81
conditionally include inttypes.h
...
git-svn-id: svn+q:///qpdf/trunk@622 71b93d88-0707-0410-a8cf-f5a4172ac649
2008-05-05 15:00:49 +00:00
Jay Berkenbilt
0ea47593f9
more 32/64-bit errors
...
git-svn-id: svn+q:///qpdf/trunk@618 71b93d88-0707-0410-a8cf-f5a4172ac649
2008-05-05 14:29:12 +00:00
Jay Berkenbilt
9a0b88bf77
update release date to actual date
...
git-svn-id: svn+q:///qpdf/trunk@599 71b93d88-0707-0410-a8cf-f5a4172ac649
2008-04-29 12:55:25 +00:00