Jay Berkenbilt
6c7bf114dc
Bug fix: properly handle overridden compressed objects
...
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-02-23 17:51:17 -05:00
Jay Berkenbilt
a844c2a3ab
Set version to 4.1.a0
...
Next released version will be 4.1.0 since new APIs are being added.
2013-01-20 15:35:39 -05:00
Jay Berkenbilt
8708fd373d
Prepare 4.0.1 release
2013-01-17 09:51:04 -05:00
Jay Berkenbilt
80fa4e01a1
Set version number to 4.0.0+
2013-01-03 16:42:10 -05:00
Jay Berkenbilt
0e9949afde
Update versions for 4.0.0 release
2012-12-31 11:43:27 -05:00
Jay Berkenbilt
3e96148aa5
Fix spelling errors
...
Fixed spelling errors in previously published commits and update
spelling dictionary
2012-12-31 10:32:32 -05:00
Jay Berkenbilt
e57c25814e
Support for encryption with /V=5 and /R=5 and /R=6
...
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-31 10:32:32 -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
774584163f
Add ExtensionLevel support to version handling
...
All version operations are now fully aware of extension levels.
2012-12-31 05:36:50 -05:00
Jay Berkenbilt
04c203ae06
Eliminate flattenScalarReferences
2012-12-31 05:36:48 -05:00
Jay Berkenbilt
b4e7d6ed32
Improve memory safety of finding PDF header
2012-12-25 15:13:44 -05:00
Jay Berkenbilt
7f84239cad
Find PDF header anywhere in the first 1024 bytes
2012-12-25 14:43:37 -05:00
Jay Berkenbilt
f256670eba
Ignore objects with offset 0
2012-11-20 13:57:37 -05:00
Jay Berkenbilt
041397fdab
Allow reading from InputSource and writing to Pipeline
...
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-23 17:42:26 -04:00
Jay Berkenbilt
8c99e4a6c0
Indicate pre-release version
2012-09-23 17:41:08 -04:00
Jay Berkenbilt
b4dc0f072a
Prepare 3.0.2 release
2012-09-06 15:47:58 -04:00
Jay Berkenbilt
59432b5c70
Prepare 3.0.1 release
2012-08-11 13:41:18 -04:00
Jay Berkenbilt
511e68758c
Update version to 3.0.0
2012-08-02 06:52:33 -04:00
Jay Berkenbilt
2280c4f6d1
Update documentation and version numbers
...
3.0.rc1
2012-07-28 22:03:36 -04: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
f3e267fce2
Move readToken from QPDF to QPDFTokenizer
2012-07-21 09:06:10 -04:00
Jay Berkenbilt
15eaed5c52
Refactor: pull *InputSource out of QPDF
...
InputSource, FileInputSource, and BufferInputSource are now top-level
classes instead of privately nested inside QPDF.
2012-07-21 09:06:06 -04:00
Jay Berkenbilt
8657c6f004
Prevent seeking before beginning of BufferInputSource
2012-07-18 09:50:05 -04:00
Jay Berkenbilt
e7b8f297ba
Support copying objects from another QPDF object
...
This includes QPDF::copyForeignObject and supporting foreign objects
as arguments to addPage*.
2012-07-11 15:54:33 -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
2266c6232b
Rework InputSource::readLine to make it much more efficient
...
This rework makes xref reconstruction run much faster and use much
less memory.
2012-06-27 06:48:06 -04:00
Jay Berkenbilt
736bafbb9c
Rename seek functions in QUtil
2012-06-26 23:10:10 -04:00
Jay Berkenbilt
5e3167e856
Set version to 3.0.a0
2012-06-25 21:35:30 -04:00
Jay Berkenbilt
1a3e88ca09
Fix large file support for 32-bit Linux
2012-06-25 10:51:44 -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
4f305488d8
Improve the FILE* version of QPDF::processFile
2012-06-23 18:23:06 -04:00
Jay Berkenbilt
b6bdc0f595
Add factory methods for creating empty arrays and dictionaries.
...
Also updated pdf_from_scratch test driver to use the new factories,
and made some cosmetic improvements and documentation updates for the
emptyPDF() method.
2012-06-22 09:46:33 -04:00
Jay Berkenbilt
a0768e4190
Add QPDF::emptyPDF() and pdf_from_scratch test code
2012-06-21 23:09:05 -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
e01ae1968b
Split page handling APIs into a separate source file
2012-06-21 15:01:02 -04:00
Tobias Hoffmann
5d3f93be29
Added first version of pages API.
2012-06-21 15:01:02 -04:00
Tobias Hoffmann
47a846a7e0
Added method to clear pages cache.
2012-06-21 15:01:02 -04:00
Jay Berkenbilt
bc1c4bb578
Add QPDF::processFile that takes an open FILE*
2012-06-21 08:00:35 -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
8e9fe21316
Update for 2.3.1
2011-12-28 17:19:40 -05:00
Jay Berkenbilt
11314a9551
Don't declare any PCRE objects static.
2011-12-28 14:32:33 -05:00
Jay Berkenbilt
1d1d21d3fe
ready for 2.3.0 release
2011-08-11 15:34:41 -04:00
Jay Berkenbilt
76b1659177
enhance PointerHolder so that it can explicitly be told to use delete [] instead of delete, thus making it useful to run valgrind over qpdf during its test suite
2011-08-11 11:57:37 -04:00
Jay Berkenbilt
da39d2b1b1
2.3.a1
2011-08-10 16:48:00 -04:00
Jay Berkenbilt
7dc197ef88
implement replace and swap
2011-08-10 12:42:48 -04:00
Jay Berkenbilt
9de1f4826b
2.2.4
...
git-svn-id: svn+q:///qpdf/trunk@1062 71b93d88-0707-0410-a8cf-f5a4172ac649
2011-06-25 18:39:05 +00:00
Jay Berkenbilt
aeb892f99b
accept stream keyword with CR only
...
git-svn-id: svn+q:///qpdf/trunk@1052 71b93d88-0707-0410-a8cf-f5a4172ac649
2011-04-30 21:46:09 +00:00
Jay Berkenbilt
c551b972f6
update version to 2.2.3, update copyright to 2011
...
git-svn-id: svn+q:///qpdf/trunk@1051 71b93d88-0707-0410-a8cf-f5a4172ac649
2011-04-30 19:19:30 +00:00
Jay Berkenbilt
a8f2248729
handle files with object 0 as a real object
...
git-svn-id: svn+q:///qpdf/trunk@1049 71b93d88-0707-0410-a8cf-f5a4172ac649
2011-01-31 14:59:42 +00:00