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
Jay Berkenbilt
8705e2e8fc
Add QPDFWriter method to output to FILE*
2012-07-05 21:24:04 -04:00
Tobias Hoffmann
abb53ac369
Limited inheritance to the attributes explicitly listed in the PDF spec
...
Previous versions of qpdf incorrectly passed arbitrary objects from
/Pages objects down to individual pages in direct contradition with
the PDF specification. These are now left in /Pages. When
intermediate /Pages nodes are being discarded as when the /Pages tree
is being flattened, a warning is issued when unknown keys are
encountered.
2012-07-04 23:04:55 -04:00
Tobias Hoffmann
7770a1b036
Added public method QPDF::pushInheritedAttributesToPage
...
Refactored optimizePagesTree to pushInheritedAttributesToPage and made
public
2012-07-04 16:24:03 -04:00
Tobias Hoffmann
235188df85
Fixed wording error in comment
2012-07-04 14:51:53 -04:00
Jay Berkenbilt
5f59c32f87
Add a few minor enhancements to recent work
...
Test coverage case for new newStream method
Expose decimal_places argument for double-based newReal
All enhancements suggested by Tobias.
2012-06-27 10:43:27 -04:00
Tobias Hoffmann
f07e3370f0
Add Pl_Concatenate filter
2012-06-27 10:20:38 -04:00
Tobias Hoffmann
43c404b45a
Add QPDFObjectHandle::newStream(QPDF *, std::string const&)
...
This makes the code simpler than having to create a buffer of a fixed
size and copy the string to it.
2012-06-27 10:19:57 -04:00
Tobias Hoffmann
75054c0b94
Add QPDFObjectHandle::newReal(double)
2012-06-27 10:19:01 -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
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
ffb96ee17e
Add pdf-from-scratch example
2012-06-23 09:05: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
d1ebe30ff6
Add QPDFObjectHandle::shallowCopy()
2012-06-21 16:15:09 -04:00
Jay Berkenbilt
eb802cfa8c
Implement page manipulation APIs
2012-06-21 15:01:02 -04:00
Jay Berkenbilt
df493c352f
Refactor optimizePagesTree
...
Split optimizePagesTree into a simpler top-level routine and a
recursive internal routine.
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
405a549f8c
Make QPDFObjectHandle::assertPageObject() public.
...
The method is helpful in other places, like the upcoming QPDF::addPage, too.
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
f59ff6fcc2
fix include order for off_t
2012-06-21 14:11:22 -04:00
Jay Berkenbilt
bc1c4bb578
Add QPDF::processFile that takes an open FILE*
2012-06-21 08:00:35 -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
b856379370
Portability issues: off_t, unlink
...
New header qpdf/Types.h attempts to make sure size_t and off_t are
defined on any platform and in a way that would work with large file
support. Additionally, missing header files are included to get
unlink.
2012-06-20 15:18:14 -04:00
Jay Berkenbilt
2757b9b05f
export new methods
2011-08-11 15:55:06 -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
14fe2e6de3
qpdf_set_info_key, qpdf_get_info_key
2011-08-11 10:48:37 -04:00
Jay Berkenbilt
759c56e1fe
implement ability to save PDF to memory, also update ChangeLog
2011-08-10 16:34:29 -04: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
7dc197ef88
implement replace and swap
2011-08-10 12:42:48 -04: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
b36f62a326
add qpdf_read_memory to C API
...
git-svn-id: svn+q:///qpdf/trunk@1044 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-10-04 15:24:10 +00:00
Jay Berkenbilt
a72ce95c92
setOutputStreams
...
git-svn-id: svn+q:///qpdf/trunk@1035 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-10-01 11:02:35 +00:00
Jay Berkenbilt
9f444ffef3
add QPDF::processMemoryFile and API additions to support it
...
git-svn-id: svn+q:///qpdf/trunk@1034 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-10-01 10:20:38 +00:00
Jay Berkenbilt
ce8b1ba6a5
convert file to a PointerHolder<InputSource> so it could be either a file or a buffer; also fix a bug in BufferInputSource::seek
...
git-svn-id: svn+q:///qpdf/trunk@1030 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-09-24 19:10:08 +00:00
Jay Berkenbilt
aa035961b3
add * and -> operators
...
git-svn-id: svn+q:///qpdf/trunk@1029 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-09-24 19:09:22 +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
2dbc1006fb
addPageContents
...
git-svn-id: svn+q:///qpdf/trunk@995 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-05 21:06:49 +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
00ed5af502
remove use of float for version comparison
...
git-svn-id: svn+q:///qpdf/trunk@984 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-08-02 16:18:46 +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
84353451a3
refactor to isolate pad calculation
...
git-svn-id: svn+q:///qpdf/trunk@956 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-04-18 23:01:31 +00:00
Jay Berkenbilt
bcd621e208
update copyrights for 2010
...
git-svn-id: svn+q:///qpdf/trunk@935 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-01-25 01:23:20 +00:00
Jay Berkenbilt
26a3c3a1c4
update for fixes to linearization padding calculations
...
git-svn-id: svn+q:///qpdf/trunk@933 71b93d88-0707-0410-a8cf-f5a4172ac649
2010-01-25 01:16:28 +00:00
Jay Berkenbilt
a80d9d176d
add C interface for getting software version
...
git-svn-id: svn+q:///qpdf/trunk@903 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-24 13:23:20 +00:00
Jay Berkenbilt
ace2a031b5
prepare 2.1.rc1 for release
...
git-svn-id: svn+q:///qpdf/trunk@901 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-24 04:47:17 +00:00
Jay Berkenbilt
b1702fb16c
more tweaking of C error interface
...
git-svn-id: svn+q:///qpdf/trunk@894 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-23 16:50:22 +00:00
Jay Berkenbilt
7f5d78c2d1
improve C error handling interface
...
git-svn-id: svn+q:///qpdf/trunk@884 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-23 15:27:30 +00:00
Jay Berkenbilt
75ea1971fa
include copyright notice in public headers
...
git-svn-id: svn+q:///qpdf/trunk@883 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-23 14:59:50 +00:00
Jay Berkenbilt
3c84d496f0
avoid having to include zlib.h in Pl_Flate.hh
...
git-svn-id: svn+q:///qpdf/trunk@882 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-23 14:58:09 +00:00
Jay Berkenbilt
f5d772773e
make line buffering os-specific
...
git-svn-id: svn+q:///qpdf/trunk@852 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-21 02:30:15 +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
95753c6b53
typo
...
git-svn-id: svn+q:///qpdf/trunk@850 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-21 00:29:07 +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
bf6e4ecf00
remove off_t from C API
...
git-svn-id: svn+q:///qpdf/trunk@846 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-20 02:40:08 +00:00
Jay Berkenbilt
436ebf6017
oops -- put stdexcept back
...
git-svn-id: svn+q:///qpdf/trunk@845 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-20 02:35:28 +00:00
Jay Berkenbilt
f5c17421a5
revert off_t
...
git-svn-id: svn+q:///qpdf/trunk@844 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-20 02:16:19 +00:00
Jay Berkenbilt
ef156afd1e
QUtil
...
git-svn-id: svn+q:///qpdf/trunk@843 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-20 02:11:04 +00:00
Jay Berkenbilt
dfb8a30565
try memory
...
git-svn-id: svn+q:///qpdf/trunk@842 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-20 02:09:37 +00:00
Jay Berkenbilt
80f19cd573
try stdlib.h
...
git-svn-id: svn+q:///qpdf/trunk@841 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-20 02:08:38 +00:00
Jay Berkenbilt
f0557a96fd
try io.h
...
git-svn-id: svn+q:///qpdf/trunk@840 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-20 02:06:31 +00:00
Jay Berkenbilt
398354b6f0
update C API for error retrieval
...
git-svn-id: svn+q:///qpdf/trunk@830 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-20 00:24:44 +00:00
Jay Berkenbilt
3f8c4c2736
categorize all error messages and include object information if available
...
git-svn-id: svn+q:///qpdf/trunk@829 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-19 23:09:19 +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
734ac1e1d2
deal with stream-specific crypt filters
...
git-svn-id: svn+q:///qpdf/trunk@827 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-19 01:58:31 +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
09175e4578
more testing, bug fix for linearized aes encrypted files
...
git-svn-id: svn+q:///qpdf/trunk@824 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-19 00:17:11 +00:00
Jay Berkenbilt
b873dc9c59
implemented writing R4/V4 encryption except that the output files don't open in Adobe reader 9.1.3.
...
git-svn-id: svn+q:///qpdf/trunk@816 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-18 02:03:18 +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
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
c2023db265
Implement changes suggested by Zarko and our subsequent conversations:
...
- Add a way to set the minimum PDF version
- Add a way to force the PDF version
- Have isEncrypted return true if an /Encrypt dictionary exists even
when we can't read the file
- Allow qpdf_init_write to be called multiple times
- Update some comments in headers
git-svn-id: svn+q:///qpdf/trunk@748 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-05 00:42:48 +00:00
Jay Berkenbilt
ad03b51b3d
typo in comment
...
git-svn-id: svn+q:///qpdf/trunk@745 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-04 23:55:02 +00:00
Jay Berkenbilt
8d7bb3ff50
add methods for getting encryption data
...
git-svn-id: svn+q:///qpdf/trunk@733 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-09-27 20:05:38 +00:00
Jay Berkenbilt
fe6771e0e5
add many new tests to exercise C api
...
git-svn-id: svn+q:///qpdf/trunk@727 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-09-27 16:01:45 +00:00
Jay Berkenbilt
84ec83e925
basic implementation of C API
...
git-svn-id: svn+q:///qpdf/trunk@725 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-09-27 14:39:04 +00:00
Jay Berkenbilt
02333ba1e9
checkpoint -- first crack at C API, minor refactoring of encryption functions
...
git-svn-id: svn+q:///qpdf/trunk@720 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-09-27 03:11:29 +00:00
Jay Berkenbilt
30426ea923
don't dll export inline functions
...
git-svn-id: svn+q:///qpdf/trunk@714 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-09-27 02:00:48 +00:00
Jay Berkenbilt
82ea3dd3a7
don't dll export inline functions
...
git-svn-id: svn+q:///qpdf/trunk@712 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-09-27 01:56:41 +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
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
e2d7dd3c76
add DLL.hh created 2009-08-06 12:32
...
git-svn-id: svn+q:///qpdf/trunk@691 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-09-26 13:51:45 +00:00
Jay Berkenbilt
1e74c03acd
stick DLL_EXPORT in front of every public method of every public class
...
git-svn-id: svn+q:///qpdf/trunk@688 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-08-06 19:00:25 +00:00
Jay Berkenbilt
fe18385ffa
clean up windows portability code, make remaining test suite pass
...
git-svn-id: svn+q:///qpdf/trunk@686 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-07-15 04:26:32 +00:00
Jay Berkenbilt
a1c0aaf03a
windows fixes
...
git-svn-id: svn+q:///qpdf/trunk@684 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-07-15 03:47:44 +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
f62bec3ee5
update test suite to handle original object ID comments
...
git-svn-id: svn+q:///qpdf/trunk@663 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-03-09 16:27:13 +00:00
Jay Berkenbilt
599daddb47
decode streams on check, always exit abnormally when warnings are detected
...
git-svn-id: svn+q:///qpdf/trunk@660 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-03-08 19:00:19 +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
4499e04b57
better recovery for appended files with damaged cross-reference tables
...
git-svn-id: svn+q:///qpdf/trunk@649 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-02-21 02:31:32 +00:00
Jay Berkenbilt
9f93c89ee5
update copyright, release 2.0.3
...
git-svn-id: svn+q:///qpdf/trunk@644 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-02-15 16:31:12 +00:00
Jay Berkenbilt
62bff4861f
fix potential 64-bit issues
...
git-svn-id: svn+q:///qpdf/trunk@613 71b93d88-0707-0410-a8cf-f5a4172ac649
2008-05-05 02:22:40 +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