Jay Berkenbilt
bedf35d6a5
Bug fix: avoid extraneous pipeline finish calls with multiple contents
...
Avoid calling finish() multiple times on the pipeline passed to
pipeContentStreams. This commit also fixes a bug in which qpdf was not
exiting with the proper exit status if warnings found while splitting
pages; this was exposed by a test case that changed.
2021-01-02 14:08:17 -05:00
Jay Berkenbilt
a139d2b36d
Add several methods for working with form XObjects ( fixes #436 )
...
Make some more methods in QPDFPageObjectHelper work with form
XObjects, provide forEach methods to walk through nested form
XObjects, possibly recursively. This should make it easier to work
with form XObjects from user code.
2021-01-02 12:29:31 -05:00
Jay Berkenbilt
afb48d23a9
QPDFPageObjectHelper::removeUnreferencedResources works with form XObjects
2021-01-02 11:33:36 -05:00
Jay Berkenbilt
6154221edb
QPDFPageObjectHelper: filterPageContents -> filterContents + form XObject
2021-01-02 11:33:36 -05:00
Jay Berkenbilt
63ea46193d
QPDFPageObjectHelper: getPageImages -> getImages
2021-01-02 11:33:36 -05:00
Jay Berkenbilt
e7a8554563
QPDFPageObjectHelper::getPageImages: support form XObjects
2021-01-02 11:33:36 -05:00
Jay Berkenbilt
1562d34c09
Add QPDFObjectHandle::isFormXObject
2021-01-01 07:36:10 -05:00
Jay Berkenbilt
c97bd6323e
Add release notes for changes from 10.0.4 so far
2020-12-30 16:45:50 -05:00
Jay Berkenbilt
4cbf32bfdb
Fix typo in comment
2020-12-30 13:20:42 -05:00
Jay Berkenbilt
c9271335fa
Add QPDFPageObjectHelper::flattenRotation and --flatten-rotation
2020-12-30 13:03:55 -05:00
Jay Berkenbilt
78c49824eb
TODO updates
2020-12-28 13:03:04 -05:00
Jay Berkenbilt
d4d7630cf5
Add pdf-custom-filter example
2020-12-28 13:03:04 -05:00
Jay Berkenbilt
ac042d16cf
Add Pipeline::getNext() to DLL
2020-12-28 13:03:04 -05:00
Jay Berkenbilt
12ecd2019a
Add QPDFObjectHandle::setFilterOnWrite
2020-12-28 12:58:19 -05:00
Jay Berkenbilt
3f9191a344
Add ostream << for QPDFObjGen
2020-12-28 12:58:19 -05:00
Jay Berkenbilt
858c7b89bc
Let optimize filter stream parameters instead of making them direct
...
Also removes preclusion of stream references in stream parameters of
filterable streams and reduces write times by about 8% by eliminating
an extra traversal of the objects.
2020-12-28 12:58:19 -05:00
Jay Berkenbilt
1a62cce940
Restructure optimize to allow skipping parameters of filtered streams
2020-12-28 12:58:19 -05:00
Jay Berkenbilt
09027344b9
Refactor: separate code that determines whether to filter a stream
2020-12-28 12:58:19 -05:00
Jay Berkenbilt
4cbe2abcc0
Test empty function detection
2020-12-28 12:58:19 -05:00
Jay Berkenbilt
39bfa01307
Implement user-provided stream filters
...
Refactor QPDF_Stream to use stream filter classes to handle supported
stream filters as well.
2020-12-28 12:58:19 -05:00
Jay Berkenbilt
1fb26f08ad
Fix typo in comment and whitespace issue
2020-12-28 12:57:59 -05:00
Jay Berkenbilt
0675a3f61a
Decide not to allow stream data providers to modify dictionary
2020-12-26 08:48:20 -05:00
Jay Berkenbilt
cc8895078a
Add QPDFObjectHandle::makeDirect(bool allow_streams)
2020-12-26 08:48:18 -05:00
Jay Berkenbilt
573b6eb8b1
Provide qpdf write progress reporting from C API ( fixes #487 )
2020-12-20 14:43:24 -05:00
Jay Berkenbilt
2050977099
Add QPDFObjectHandle manipulation to C API
2020-11-28 19:48:07 -05:00
Jay Berkenbilt
78b9d6bfd4
Prepare 10.0.4 release
2020-11-21 13:50:02 -05:00
Jay Berkenbilt
9d64481571
Handle negative numbers in QIntC::range_check (fuzz issue 26994)
2020-11-21 13:43:04 -05:00
Jay Berkenbilt
4b4b31bf23
Maintainer notes
2020-11-21 13:43:04 -05:00
Jay Berkenbilt
13e6b54be1
Spell check
2020-11-21 11:22:05 -05:00
Jay Berkenbilt
bd79138c84
Treat direct page as runtime rather than logic error (fuzz issue 27393)
2020-11-11 09:50:43 -05:00
Jay Berkenbilt
a7ef572c84
Small enhancement to --pages argument parsing
2020-11-09 11:12:34 -05:00
Jay Berkenbilt
47f4ebcdac
Ignore unused field in xref entry, avoiding range error ( fixes #482 )
2020-11-04 07:46:46 -05:00
Jay Berkenbilt
3e5aaa299a
Typo in help message
2020-11-03 09:03:16 -05:00
Jay Berkenbilt
fbe40b800d
Prepare 10.0.3 release
2020-10-31 13:47:03 -04:00
Jay Berkenbilt
52e07c813c
TODO: remove item I'm not fixing
2020-10-31 13:41:08 -04:00
Jay Berkenbilt
6971f78ff6
Fix stack overflow on direct root (fuzz issue 26761)
2020-10-31 13:10:39 -04:00
Jay Berkenbilt
ffe6af6f77
Add comments explaining the foreign object copying code
...
These are the comments I would have liked to have been able to read
while fixing #449 and #478 .
2020-10-31 12:14:26 -04:00
Jay Berkenbilt
96767fb104
Fix foreign stream copying bug ( fixes #478 )
...
This reverts an incorrect fix to #449 and codes it properly. The real
problem was that we were looking at the local dictionaries rather than
the foreign dictionaries when saving the foreign stream data. In the
case of direct objects, these happened to be the same, but in the case
of indirect objects, the object references could be pointing anywhere
since object numbers don't match up between the old and new files.
2020-10-31 12:14:26 -04:00
Jay Berkenbilt
f1ae55a430
Better indirect filter test case
...
The test suite now contains test cases that fail with both 10.0.1 and
10.0.2 and reproduce the internal error from #449 .
2020-10-31 09:02:30 -04:00
Jay Berkenbilt
c5602e931a
Run CI Fuzz integration on push as well as pull request
2020-10-27 18:07:56 -04:00
Jay Berkenbilt
54759cbf63
Remove C++-11 notes from TODO
2020-10-27 18:07:07 -04:00
Jay Berkenbilt
24f62e38a7
Fix a few maintainer notes
2020-10-27 18:06:13 -04:00
Jay Berkenbilt
da7540794a
Prepare 10.0.2 release
2020-10-27 11:57:48 -04:00
Jay Berkenbilt
09bd1fafb1
Improve efficiency of number to string conversion
2020-10-27 11:57:48 -04:00
Jay Berkenbilt
bcea54fcaa
Revert removal of unreadCh change for performance
...
Turns out unreadCh is much more efficient than seek(-1, SEEK_CUR).
Update comments and code to reflect this.
2020-10-27 11:57:48 -04:00
Jay Berkenbilt
81d2c548dc
Spell check
2020-10-26 19:42:46 -04:00
Jay Berkenbilt
db08974e88
Release notes for 10.0.2
2020-10-26 19:39:36 -04:00
Jay Berkenbilt
bc9c80dbe0
Add some missing ChangeLog entries
2020-10-26 11:51:33 -04:00
Jay Berkenbilt
7120c4a748
Use sha256 for signing release files
2020-10-25 18:06:40 -04:00
Jay Berkenbilt
4e8d21d849
Build Windows releases with openssl; automate external libraries
...
External libraries for Windows are now built automatically in the
qpdf/external-libs repository and include openssl in addition to zlib
and jpeg. Use these, and update the Windows build to build with the
openssl crypto provider by default. We leave the native crypto
provider enabled in case there is a problem with openssl and also to
continue to exercise that code.
2020-10-25 18:06:16 -04:00