2010-10-01 10:20:38 +00:00
|
|
|
2010-10-01 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2010-10-01 11:07:12 +00:00
|
|
|
* 2.2.1: release
|
|
|
|
|
2010-10-01 11:02:35 +00:00
|
|
|
* include/qpdf/QPDF.hh: Add setOutputStreams method to allow
|
|
|
|
redirection of library-generated output/error to alternative
|
|
|
|
streams.
|
|
|
|
|
2010-10-01 10:20:38 +00:00
|
|
|
* include/qpdf/QPDF.hh: Add processMemoryFile method for
|
|
|
|
processing a PDF file from a memory buffer instead of a file.
|
|
|
|
|
2010-09-24 20:47:10 +00:00
|
|
|
2010-09-24 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* libqpdf/QPDF.cc: change private "file" method to be a
|
|
|
|
PointerHolder<InputSource> to prepare qpdf for being able to work
|
|
|
|
with PDF files loaded into memory in addition to working with
|
|
|
|
files on disk.
|
|
|
|
|
|
|
|
* include/qpdf/PointerHolder.hh: add operator* and operator->
|
|
|
|
methods so that PointerHolder objects can be used like pointers.
|
|
|
|
This is consistent with the smart pointer objects in the next
|
|
|
|
revision of C++.
|
|
|
|
|
2010-09-05 15:00:44 +00:00
|
|
|
2010-09-05 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2010-09-06 02:17:55 +00:00
|
|
|
* libqpdf/QPDF.cc (readObjectInternal): Recognize empty objects
|
|
|
|
and treat them as null.
|
|
|
|
|
2010-09-05 15:00:44 +00:00
|
|
|
* libqpdf/QPDF_Stream.cc (filterable): Handle inline image filter
|
|
|
|
abbreviations as stream filter abbreviations. Although this is
|
|
|
|
not technically allowed by the PDF specification, table H.1 in the
|
|
|
|
pre-ISO spec indicates that Adobe's readers accept them. Thanks
|
|
|
|
to Jian Ma <stronghorse@tom.com> for bringing this to my
|
|
|
|
attention.
|
|
|
|
|
2010-08-14 16:39:50 +00:00
|
|
|
2010-08-14 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2010-08-14 16:43:18 +00:00
|
|
|
* 2.2.0: release
|
|
|
|
|
2010-08-14 16:39:50 +00:00
|
|
|
* Rename README.windows to README-windows.txt and convert its line
|
|
|
|
endings to Windows-style line endings. Also mention Jian Ma's VC6
|
|
|
|
port in the manual and README-windows.txt.
|
|
|
|
|
2010-08-09 23:33:40 +00:00
|
|
|
2010-08-09 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* Add QPDFObjectHandle::getRawStreamData to return raw
|
|
|
|
(unfiltered) stream data.
|
|
|
|
|
2010-08-08 21:19:58 +00:00
|
|
|
2010-08-08 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* 2.2.rc1: release
|
|
|
|
|
2010-08-05 21:06:49 +00:00
|
|
|
2010-08-05 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2010-08-05 21:51:19 +00:00
|
|
|
* Add QPDFObjectHandle::addPageContents, a convenience routine for
|
|
|
|
appending or prepending new streams to a page's content streams.
|
2010-08-06 01:27:47 +00:00
|
|
|
The "pdf-double-page-size" example illustrates its use.
|
2010-08-05 21:51:19 +00:00
|
|
|
|
2010-08-05 21:06:49 +00:00
|
|
|
* Add new methods to QPDFObjectHandle: replaceStreamData and
|
|
|
|
newStream. These methods allow users of the qpdf library to add
|
2010-08-05 21:54:15 +00:00
|
|
|
new streams and to replace data of existing streams. The
|
2010-08-06 01:27:47 +00:00
|
|
|
"pdf-double-page-size" and "pdf-invert-images" examples illustrate
|
|
|
|
their use.
|
2010-08-05 21:06:49 +00:00
|
|
|
|
2010-06-06 13:32:08 +00:00
|
|
|
2010-06-06 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* Fix memory leak for QPDF objects whose underlying PDF objects
|
|
|
|
contain circular references. Thanks to Jian Ma
|
|
|
|
<stronghorse@tom.com> for calling my attention to the memory leak.
|
|
|
|
|
2010-04-25 15:05:11 +00:00
|
|
|
2010-04-25 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* 2.1.5: release
|
|
|
|
|
|
|
|
* libqpdf/QPDF_encryption.cc (compute_encryption_key): remove
|
|
|
|
restrictions on length of file identifier string. (Fixes
|
|
|
|
qpdf-Bugs-2991412.)
|
|
|
|
|
2010-04-18 23:19:54 +00:00
|
|
|
2010-04-18 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* 2.1.4: release
|
|
|
|
|
|
|
|
* libqpdf/QPDFWriter.cc (writeLinearized): the padding calculation
|
|
|
|
fix in 2.1.2 was applied in only one place but it was needed in
|
|
|
|
two places since there are actually two cross reference streams in
|
|
|
|
a linearized file. The new padding calculation is now used for
|
|
|
|
both streams. Hopefully this should put an end to linearization
|
|
|
|
padding problems. (Fixes qpdf-Bugs-2979219.)
|
|
|
|
|
2010-04-10 13:43:16 +00:00
|
|
|
2010-04-10 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* qpdf/qpdf.cc (main): Since qpdf --check only checks syntax and
|
|
|
|
stream encoding without doing any semantic checks, make the output
|
|
|
|
clearer when no errors around found. This is inspired by
|
|
|
|
qpdf-Bugs-2983225.
|
|
|
|
|
2010-03-27 15:53:44 +00:00
|
|
|
2010-03-27 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2010-03-27 16:03:04 +00:00
|
|
|
* 2.1.3: release
|
|
|
|
|
2010-03-27 15:53:44 +00:00
|
|
|
* libqpdf/QPDF_optimization.cc (flattenScalarReferences): Flatten
|
|
|
|
scalar references for unreferenced objects as well as those seen
|
|
|
|
during traversal of the file. This matters when preserving object
|
|
|
|
streams that contain unreferenced objects with indirect scalars.
|
|
|
|
(Fixes qpdf-Bugs-2974522.) Updated TODO with a description of a
|
|
|
|
possibly better fix involving removal of flattenScalarReferences.
|
|
|
|
|
|
|
|
* libqpdf/Pl_AES_PDF.cc (finish): Don't complain if an AES input
|
|
|
|
buffer is not a multiple of 16 bytes. Instead, just pad with
|
|
|
|
nulls and hope for the best. PDF files have been encountered "in
|
|
|
|
the wild" that contain AES buffers that aren't a multiple of 16
|
|
|
|
bytes.
|
|
|
|
|
2010-01-25 01:21:06 +00:00
|
|
|
2010-01-24 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* 2.1.2: release
|
|
|
|
|
|
|
|
* libqpdf/QPDFWriter.cc: fix logic error in padding calculation.
|
|
|
|
When writing linearized files with cross reference streams, the
|
|
|
|
padding calculation failed to take differences in sizes of
|
|
|
|
compressed data between pass 1 and pass 2 into consideration.
|
|
|
|
|
2009-12-14 19:50:37 +00:00
|
|
|
2009-12-14 Jay Berkenbilt <ejb@ql.org>
|
2009-12-14 02:35:31 +00:00
|
|
|
|
|
|
|
* 2.1.1: release
|
|
|
|
|
2009-12-14 19:50:37 +00:00
|
|
|
* qpdf/qtest/qpdf.test: improve test for acroread to make sure it
|
|
|
|
actually works and is not just present in the path.
|
|
|
|
|
|
|
|
2009-12-13 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2009-12-14 02:35:31 +00:00
|
|
|
* libqpdf/qpdf/Pl_AES_PDF.hh: include <stdint.h>, if available, so
|
|
|
|
we have valid definitions of uint32_t.
|
|
|
|
|
2009-10-30 23:57:02 +00:00
|
|
|
2009-10-30 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* 2.1: release
|
|
|
|
|
|
|
|
* libqpdf/QPDF.cc: be more forgiving of extraneous whitespace in
|
|
|
|
the xref table and while recovering from error conditions.
|
|
|
|
|
2009-10-27 01:51:56 +00:00
|
|
|
2009-10-26 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* Work around failure of PCRE test case; this test case exercises
|
|
|
|
an aspect of PCRE that qpdf does not use, and the test fails with
|
|
|
|
the version of PCRE on Red Hat Enterprise Linux 5, so we ignore
|
|
|
|
failure on this particular test case.
|
|
|
|
|
|
|
|
* Fix RPM .spec file to include "C" examples
|
|
|
|
|
2009-10-24 13:23:45 +00:00
|
|
|
2009-10-24 Jay Berkenbilt <ejb@ql.org>
|
2009-10-24 04:47:17 +00:00
|
|
|
|
|
|
|
* 2.1.rc1: release
|
|
|
|
|
2009-10-24 13:23:20 +00:00
|
|
|
* Provide interfaces for getting qpdf's own version number
|
|
|
|
|
|
|
|
2009-10-19 Jay Berkenbilt <ejb@ql.org>
|
2009-10-19 23:09:19 +00:00
|
|
|
|
2009-10-20 00:24:44 +00:00
|
|
|
* include/qpdf/QPDF.hh (QPDF): getWarnings now returns a list of
|
|
|
|
QPDFExc rather than a list of strings. This way, warnings may be
|
|
|
|
inspected in more detail.
|
|
|
|
|
2009-10-19 23:09:19 +00:00
|
|
|
* Include information about the last object read in most error
|
|
|
|
messages. Most of the time, this will provide a good hint as to
|
|
|
|
which object contains the error, but it's possible that the last
|
|
|
|
object read may not necessarily be the one that has the error if
|
|
|
|
the erroneous object was previously read and cached.
|
|
|
|
|
2009-10-18 14:09:10 +00:00
|
|
|
2009-10-18 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2009-10-19 00:17:11 +00:00
|
|
|
* If forcing version, disable object stream creation and/or
|
|
|
|
encryption if previous specifications are incompatible with new
|
|
|
|
version. It is still possible that PDF content, compression
|
|
|
|
schemes, etc., may be incompatible with the new version, but at
|
|
|
|
least this way, older viewers will at least have a chance.
|
|
|
|
|
2009-10-18 14:09:10 +00:00
|
|
|
* libqpdf/QPDFWriter.cc (unparseObject): avoid compressing
|
|
|
|
Metadata streams if possible.
|
|
|
|
|
2009-10-24 04:47:17 +00:00
|
|
|
2009-10-13 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* Upgrade embedded qtest to version 1.4, which allows the test
|
|
|
|
suite to be run in Windows with MSYS and ActiveState Perl rather
|
|
|
|
than requiring Cygwin perl.
|
|
|
|
|
2009-10-18 14:09:10 +00:00
|
|
|
2009-10-04 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* Implement support AES encrypt and crypt filters. Implementation
|
|
|
|
is not fully tested due to lack of test data but has been tested
|
|
|
|
for several cases.
|
|
|
|
|
2009-10-04 23:56:56 +00:00
|
|
|
2009-10-04 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2009-10-05 00:42:48 +00:00
|
|
|
* Add methods to QPDFWriter and corresponding command line
|
|
|
|
arguments to qpdf to set the minimum output PDF version and also
|
|
|
|
to force the version to a particular value.
|
|
|
|
|
2009-10-04 23:56:56 +00:00
|
|
|
* libqpdf/QPDF.cc (processXRefStream): warn and ignore extra xref
|
|
|
|
stream entries when stream is larger than reported size. This
|
|
|
|
used to be a fatal error. (Fixes qpdf-Bugs-2872265.)
|
|
|
|
|
2009-09-27 16:55:24 +00:00
|
|
|
2009-09-27 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2009-09-27 20:05:38 +00:00
|
|
|
* Add several methods to query permissions controlled by the
|
|
|
|
encryption dictionary. Note that qpdf does not enforce these
|
|
|
|
permissions even though it allows the user to query them.
|
|
|
|
|
2009-09-27 16:55:24 +00:00
|
|
|
* The function QPDF::getUserPassword returned the user password
|
|
|
|
with the required padding as specified by the PDF specification.
|
|
|
|
This is seldom useful to users. This function has been replaced
|
|
|
|
by QPDF::getPaddedUserPassword. Call the new
|
|
|
|
QPDF::getTrimmedUserPassword to retreive the user password in a
|
|
|
|
human-readable format.
|
|
|
|
|
|
|
|
* qpdf/qpdf.cc (main): qpdf --check now prints the PDF version
|
|
|
|
number in addition to its other output.
|
|
|
|
|
2009-09-26 18:36:04 +00:00
|
|
|
2009-09-26 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* Removed all references to QEXC; now using std::runtime_error and
|
|
|
|
std::logic_error and their subclasses for all exceptions.
|
|
|
|
|
2009-05-03 16:38:04 +00:00
|
|
|
2009-05-03 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2009-10-24 04:47:17 +00:00
|
|
|
* 2.0.6: release
|
2009-05-03 16:38:04 +00:00
|
|
|
|
|
|
|
* libqpdf/QPDF_Stream.cc (filterable): ignore /DecodeParms if it's
|
|
|
|
not a type we recognize. (Fixes qpdf-Bugs-2779746.)
|
|
|
|
|
2009-03-10 16:26:57 +00:00
|
|
|
2009-03-10 Jay Berkenbilt <ejb@ql.org>
|
2009-03-09 16:27:13 +00:00
|
|
|
|
2009-03-09 16:59:37 +00:00
|
|
|
* 2.0.5: release
|
|
|
|
|
2009-03-10 16:26:57 +00:00
|
|
|
2009-03-09 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2009-03-09 16:27:13 +00:00
|
|
|
* libqpdf/Pl_LZWDecoder.cc: adjust LZWDecoder full table
|
|
|
|
detection, now having been able to adequately test boundary
|
|
|
|
conditions both and with and without early code change. Also
|
|
|
|
compared implementation with other LZW decoders.
|
|
|
|
|
2009-03-08 19:00:19 +00:00
|
|
|
2009-03-08 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* qpdf/fix-qdf (write_ostream): Adjust offsets while writing
|
|
|
|
object streams to account for changes in the length of the
|
|
|
|
dictionary and offset tables.
|
|
|
|
|
|
|
|
* qpdf/qpdf.cc (main): In check mode, in addition to checking
|
|
|
|
structure of file, attempt to decode all stream data.
|
|
|
|
|
|
|
|
* libqpdf/QPDFWriter.cc (QPDFWriter::writeObject): In QDF mode,
|
2009-03-09 01:11:06 +00:00
|
|
|
write a comment to the QDF file before each object that indicates
|
|
|
|
the object ID of the corresponding object from the original file.
|
2009-03-09 16:27:13 +00:00
|
|
|
Add --no-original-object-ids flag to qpdf and
|
|
|
|
setSuppressOriginalObjectIDs() method to QPDFWriter to turn this
|
|
|
|
behavior off.
|
2009-03-08 19:00:19 +00:00
|
|
|
|
|
|
|
* libqpdf/QPDF.cc (QPDF::pipeStreamData): Issue a warning instead
|
|
|
|
of failing if there is a problem found while decoding stream.
|
|
|
|
|
|
|
|
* qpdf/qpdf.cc: Exit with a status of 3 if warnings were found
|
|
|
|
regardless of what mode we're in.
|
|
|
|
|
2009-02-21 14:10:40 +00:00
|
|
|
2009-02-21 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* 2.0.4: release
|
|
|
|
|
2009-02-21 02:31:32 +00:00
|
|
|
2009-02-20 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2009-02-21 02:54:31 +00:00
|
|
|
* Fix many typos in comments and strings.
|
|
|
|
|
2009-02-21 02:38:33 +00:00
|
|
|
* qpdf/qpdf.cc: in --check mode, if there are warnings but no
|
|
|
|
errors, exit with a status of 3.
|
|
|
|
|
2009-02-21 02:31:32 +00:00
|
|
|
* libqpdf/QPDF.cc (QPDF::insertXrefEntry): when recovering the
|
|
|
|
cross-reference table, have objects we encounter later in the file
|
|
|
|
supersede those we found earlier. This improves the chances of
|
|
|
|
being able to recover appended files with damaged cross-reference
|
|
|
|
tables.
|
|
|
|
|
2009-02-20 02:27:36 +00:00
|
|
|
2009-02-19 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* libqpdf/Pl_LZWDecoder.cc: correct logic error for previously
|
|
|
|
untested case of running the LZW decoder without the "early code
|
|
|
|
change" flag. Thanks to a bug report from "Atom Smasher", I
|
|
|
|
finally was able to obtain an input stream compressed in this way.
|
|
|
|
|
2009-02-15 16:31:12 +00:00
|
|
|
2009-02-15 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* 2.0.3: release
|
|
|
|
|
2008-12-12 03:17:25 +00:00
|
|
|
2008-12-11 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* qpdf/qpdf.cc (main): Accept -help and -version as well as --help
|
|
|
|
and --version
|
|
|
|
|
2008-11-23 18:49:13 +00:00
|
|
|
2008-11-23 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2008-11-23 19:11:24 +00:00
|
|
|
* Include stdio.h in a few files for proper compilation with (yet
|
|
|
|
to be released) gcc 4.4
|
|
|
|
|
2008-11-23 19:01:11 +00:00
|
|
|
* updated embedded qtest to version 1.3
|
|
|
|
|
2008-11-23 18:49:13 +00:00
|
|
|
* libqpdf/QPDF_String.cc (QPDF_String::getUTF8Val): handle
|
|
|
|
UTF-16BE properly rather than just treating the string as a string
|
|
|
|
of 16-bit characters.
|
|
|
|
|
2008-06-30 14:48:16 +00:00
|
|
|
2008-06-30 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* 2.0.2: release
|
|
|
|
|
|
|
|
* updated embedded qtest to version 1.2 (includes previous
|
|
|
|
changes)
|
|
|
|
|
2008-06-08 00:46:06 +00:00
|
|
|
2008-06-07 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* qpdf/qtest/qpdf/diff-encrypted: change == to = so that the test
|
|
|
|
suite passes when /bin/sh is not bash
|
|
|
|
|
2008-05-07 15:43:35 +00:00
|
|
|
2008-05-07 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* qtest/bin/qtest-driver (run_test): increase timeout for qtest to
|
|
|
|
be more tolerant of slow machines
|
|
|
|
|
2008-05-06 15:23:28 +00:00
|
|
|
2008-05-06 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2008-05-07 15:43:35 +00:00
|
|
|
* 2.0.1: release
|
|
|
|
|
2008-05-06 15:23:28 +00:00
|
|
|
* make/rules.mk: fix logic with .dep generation for .lo files so
|
|
|
|
that dependencies work properly with libtool
|
|
|
|
|
2008-05-05 14:45:06 +00:00
|
|
|
2008-05-05 Jay Berkenbilt <ejb@ql.org>
|
2008-05-04 02:09:53 +00:00
|
|
|
|
2008-05-06 15:23:28 +00:00
|
|
|
* libqpdf/qpdf/MD5.hh: fix header to be 64-bit clean
|
|
|
|
|
|
|
|
* configure.ac: add tests for sized integer types
|
2008-05-05 14:33:34 +00:00
|
|
|
|
2008-05-05 14:45:06 +00:00
|
|
|
2008-05-04 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
2008-05-06 15:23:28 +00:00
|
|
|
* libqpdf/QPDF_encryption.cc: do not assume size_t is unsigned int
|
2008-05-05 02:08:47 +00:00
|
|
|
|
2008-05-06 15:23:28 +00:00
|
|
|
* qpdf/qtest/qpdf.test: removed locale-specific tests. These were
|
|
|
|
really to check bugs in perl 5.8.0 and are obsolete now. They
|
|
|
|
also make the test suite fail in some environments that don't have
|
|
|
|
all the locales fully configured.
|
2008-05-05 02:08:47 +00:00
|
|
|
|
2008-05-06 15:23:28 +00:00
|
|
|
* various: updated several files for gcc 4.3 by adding missing
|
|
|
|
includes (string.h, stdlib.h)
|
2008-05-04 02:09:53 +00:00
|
|
|
|
2008-04-29 12:55:25 +00:00
|
|
|
2008-04-26 Jay Berkenbilt <ejb@ql.org>
|
|
|
|
|
|
|
|
* 2.0: initial public release
|