Jay Berkenbilt
a2f62935b3
Catch exceptions as const references ( fixes #236 )
...
This fix allows qpdf to compile/test cleanly with gcc 8.
2018-08-12 21:57:52 -04:00
Jay Berkenbilt
fe769f2723
Keep file open while adding its pages during merge ( fixes #217 )
2018-08-04 19:58:13 -04:00
Jay Berkenbilt
6bf47ac6e8
With --verbose, give information on processing merge inputs
2018-06-22 16:14:54 -04:00
Jay Berkenbilt
a433ed24f9
Add progress reporting for QPDFWriter ( fixes #200 )
2018-06-22 16:14:54 -04:00
Jay Berkenbilt
99593e0eef
Use ClosedFileInputSource when merging files ( fixes #154 )
2018-06-22 12:53:41 -04:00
Jay Berkenbilt
c71dc6888c
Don't prune resource dictionaries on errors or by request
...
If we are unable to filter a page's content streams, don't attempt to
remove objects from the page's resource dictionary. Also provide a
command line option to suppress resource removal in case we ever need
this as a workaround for some bug or broken PDF files.
2018-06-22 10:45:31 -04:00
Jay Berkenbilt
6c89d4b35b
When splitting files, remove unreferenced objects ( fixes #203 )
2018-06-21 21:03:30 -04:00
Jay Berkenbilt
84cd53f5af
Make page range optional in --rotate ( fixes #211 )
2018-06-21 16:28:44 -04:00
Jay Berkenbilt
0dadf17ab7
Convert command-line and test suite to use page helper classes
...
This provides better test coverage and more useful code for people to
read and copy.
2018-06-21 15:57:13 -04:00
Jay Berkenbilt
b8ccbff413
doc: point out use of @filename for specifying password ( fixes #198 )
2018-05-05 17:52:04 -04:00
Jay Berkenbilt
666f794393
Support "r" in page ranges ( fixes #155 )
2018-03-04 07:05:14 -05:00
Jay Berkenbilt
a8682e0b75
Spell check
2018-02-25 15:06:44 -05:00
Jay Berkenbilt
9a4ef8c95d
Separate copyright notice from --version option
2018-02-25 09:03:27 -05:00
Jay Berkenbilt
b8723e97f4
Add coalesce contents capability
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
6afe83978f
Switch from parseContentStream to parsePageContents
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
ebd5ed63de
Add option to save pass 1 of lineariziation
...
This is useful only for debugging the linearization code.
2018-02-18 20:18:40 -05:00
Jay Berkenbilt
569d74d36b
Allow raw encryption key to be specified
...
Add options to enable the raw encryption key to be directly shown or
specified. Thanks to Didier Stevens <didier.stevens@gmail.com> for the
idea and contribution of one implementation of this idea.
2018-01-14 10:21:05 -05:00
Jay Berkenbilt
68572df2bf
Update copyright to 2018
2018-01-13 20:25:58 -05:00
Jay Berkenbilt
48864b8d6e
Clarify documentation of advanced parsing options
2017-12-25 18:42:33 -05:00
Jay Berkenbilt
07c8bb2843
Additionally license under Apache License version 2.0
...
The Apache License version 2.0 is now the primary license for qpdf.
However, users may, at their option, continue to use Artistic version
2.0.
2017-09-14 12:59:25 -04:00
Jay Berkenbilt
cbb2614975
Fix command-line parsing for --rotate
2017-09-07 22:58:37 -04:00
Jay Berkenbilt
1868a10f8b
Replace all atoi calls with QUtil::string_to_int
...
The latter catches underflow/overflow.
2017-08-29 12:28:32 -04:00
Jay Berkenbilt
e452d9dca6
Spell check
2017-08-22 14:22:20 -04:00
Jay Berkenbilt
8288a4eb3a
Update copyright to 2017
2017-08-21 21:18:47 -04:00
Jay Berkenbilt
ddc6cf0cf6
Precheck streams by default
...
There is no need for a --precheck-streams option. We can do the
precheck without imposing any penalty, only re-encoding the stream if
it fails the first time.
2017-08-21 17:44:22 -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
cfa2eb97fb
Add page rotation ( fixes #132 )
2017-08-12 22:57:38 -04:00
Jay Berkenbilt
d926d78059
Add --verbose flag
2017-08-12 12:30:18 -04:00
Jay Berkenbilt
2c6fe1805a
Support groups of pages in --split-pages ( fixes #30 )
2017-08-12 12:08:23 -04:00
Jay Berkenbilt
df33c368b4
Change --single-pages to --split-pages
...
This is in preparation for implementing page groups.
2017-08-12 11:49:04 -04:00
Jay Berkenbilt
c5dc6d8067
Remove unused PointerHolder interface
...
Also fix a bug resulting from incorrect use of PointerHolder because
of this unused parameter.
2017-08-10 19:01:38 -04:00
Jay Berkenbilt
ff6971fb1c
Call PointerHolder constructor properly ( fixes #135 )
...
Passed arguments to the constructor in the wrong order.
2017-08-09 22:00:49 -04:00
Jay Berkenbilt
49825e5cb6
Add --split-pages option ( fixes #30 )
2017-08-05 10:22:33 -04:00
Jay Berkenbilt
1ec59c299d
Refactor write_output
2017-08-05 10:22:33 -04:00
Jay Berkenbilt
909daf9543
Move page spec processing earlier
2017-08-05 10:22:33 -04:00
Jay Berkenbilt
24f28f0768
Split qpdf.cc's main into reasonably sized functions
...
main() had gotten absurdly long. Split it into reasonable chunks. This
refactoring is in preparation for handling splitting output into
single pages.
2017-08-05 08:24:05 -04:00
Jay Berkenbilt
c88eaae2f2
Fix off-by-one error in --pages argument parsing ( fixes #129 )
2017-08-02 21:08:43 -04:00
Jay Berkenbilt
2d5b854468
Allow reading command-line args from files ( fixes #16 )
2017-07-29 22:23:21 -04:00
Jay Berkenbilt
5993c3e83c
Detect input file = output file ( fixes #29 )
2017-07-29 20:58:01 -04:00
Jay Berkenbilt
885b8781cc
Allow --check to coexist with and precede other operations ( fixes #42 )
2017-07-29 19:56:21 -04:00
Jay Berkenbilt
f37d399d82
Add newline-before-endstream option ( fixes #103 )
2017-07-29 12:21:38 -04:00
Jay Berkenbilt
3a1ff5ded9
Add option to preserve unreferenced objects
2017-07-28 19:19:11 -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
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
f77acbdbba
Copyright 2015
2015-05-24 17:26:49 -04:00
Jay Berkenbilt
225b018290
Update Copyright to 2014
2014-01-14 15:40:02 -05:00
Jay Berkenbilt
a237e92445
Warn when -accessibility=n will be ignored
...
Also accept -accessibility=n with 256 bit keys even though it will be
ignored.
2013-10-18 10:45:15 -04:00
Jay Berkenbilt
ac9c1f0d56
Security: replace operator[] with at
...
For std::string and std::vector, replace operator[] with at. This was
done using an automated process. See README.hardening for details.
2013-10-18 10:45:14 -04:00
Jay Berkenbilt
91367239fd
Add --show-npages option to qpdf
2013-07-07 19:43:16 -04:00
Jay Berkenbilt
adccedc02f
Allow numeric range to be omitted qpdf --pages
...
Detect a missing page range and assume 1-z.
2013-07-07 19:43:16 -04:00