Jay Berkenbilt
66e63b8667
Prepare 5.0.0 release
2013-07-10 12:29:13 -04:00
Jay Berkenbilt
cee2592ed1
Change API/ABI and withdraw 4.2.0
...
4.2.0 was binary incompatible in spite of there being no deletions or
changes to any public methods. As such, we have to bump the ABI and
are fixing some API breakage while we're at it.
Previous 4.3.0 target is now 5.1.0.
2013-07-10 11:30:13 -04:00
Jay Berkenbilt
f31e526d67
Prepare 4.2.0 release
2013-07-07 19:43:16 -04:00
Jay Berkenbilt
b84f57e56d
Ignore broken DecodeParms for stream with no filters
2013-07-07 19:43:16 -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
Jay Berkenbilt
a85007cb0d
Handle more broken files
...
Space rather than newline after xref, missing /ID in trailer for
encrypted file. This enables qpdf to handle some files that xpdf can
handle. Adobe reader can't necessarily handle them.
2013-06-15 12:40:01 -04:00
Jay Berkenbilt
16051788ed
Handle /Outlines dictionary being a direct object
...
Even though this case is not valid according to the spec, it has been
seen, and caused an internal error.
2013-06-14 21:36:04 -04:00
Jay Berkenbilt
eae8370cd9
Add optional /Length key in crypt filter dictionary
2013-06-14 20:42:39 -04:00
Jay Berkenbilt
a3576a7359
Bug fix: handle generation > 0 when generating object streams
...
Rework QPDFWriter to always track old object IDs and QPDFObjGen
instead of int, thus not discarding the generation number. Switch to
QPDF::getCompressibleObjGen() to properly handle the case of an old
object eligible for compression that has a generation of other than
zero.
2013-06-14 14:58:09 -04:00
Jay Berkenbilt
5039da0b91
Add QPDFObjectHandle::getObjGen()
...
This is safer than getObjectID() and getGeneration() for many uses.
2013-06-14 14:58:09 -04:00
Jay Berkenbilt
d88231e01e
Promote QPDF::ObjGen to top-level object QPDFObjGen
2013-06-14 14:58:08 -04:00
Jay Berkenbilt
f02c5f5e12
Final preparation for 4.1.0 release
2013-04-14 15:03:51 -04:00
Jay Berkenbilt
e8ddac8950
Document casting policy
2013-03-25 14:37:25 -04:00
Jay Berkenbilt
49c7681c58
Windows install: check DLL type
...
When copying dlls, make sure to only consider DLLs whose type matches
the type of what is loading them.
2013-03-11 14:10:37 -04:00
Jay Berkenbilt
197af341de
Use ./install-sh instead of install -c
2013-03-07 11:29:56 -05:00
Jay Berkenbilt
119f2a4b68
Add method to terminate content stream parsing
2013-03-05 13:35:46 -05:00
Jay Berkenbilt
fd64959398
Favor strerror_s and fopen_s on MSVC
...
Make remaining calls to fopen and strerror use strerror_s and fopen_s
on MSVC.
2013-03-05 13:35:46 -05:00
Jay Berkenbilt
ac4deac187
Call QUtil::safe_fopen in place of fopen
...
fopen was previuosly called wrapped by QUtil::fopen_wrapper, but
QUtil::safe_fopen does this itself, which is less cumbersome.
2013-03-05 13:35:46 -05:00
Jay Berkenbilt
a51ae10b8d
Remove all calls to sprintf
2013-03-05 13:35:46 -05:00
Jay Berkenbilt
8be8277613
Rewrite QUtil::int_to_string and QUtil::double_to_string
...
Make them safer by avoiding any internal limits and replacing sprintf
with std::ostringstream.
2013-03-04 16:45:16 -05:00
Jay Berkenbilt
a11081085b
Handle warning flags better
...
Make --enable-werror work properly on msvc, handle extra warnings
flags for msvc in configure.ac instead of hardcoding into
make/msvc.mk, separate warnings flags into WFLAGS in autoconf.mk to
avoid duplication and to make it easier to override.
2013-03-04 16:45:15 -05:00
Jay Berkenbilt
32b62035ce
Replace many calls to sprintf with QUtil::hex_encode
...
Add QUtil::hex_encode to encode binary data has a hexadecimal string,
and use it in place of sprintf where possible.
2013-03-04 16:45:15 -05:00
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
7e7c93951f
Do not remove libqpdf.la
...
Some distributions (like debian) don't want .la files to be installed,
but the responsibility for doing this should like in the packaging,
not in qpdf itself.
2013-01-31 16:16:45 -05:00
Jay Berkenbilt
a5d8783f67
Improve qpdf --check
...
Fix exit status for case of errors without warnings, continue after
errors when possible, add test case for parsing a file with content
stream errors on some but not all pages.
2013-01-25 11:08:50 -05:00
Jay Berkenbilt
a7e8b8c789
Have qpdf --check parse content streams
...
Also move writing to null and parsing of content streams out of the
wrong if block.
2013-01-24 11:47:36 -05:00
Jay Berkenbilt
bfda717749
Cosmetic changes to be closer to Adobe terminology
...
Change object type Keyword to Operator, and place the order of the
object types in object_type_e in the same order as they are mentioned
in the PDF specification.
Note that this change only breaks backward compatibility with code
that has not yet been released.
2013-01-23 09:38:05 -05:00
Jay Berkenbilt
913eb5ac35
Add getTypeCode() and getTypeName()
...
Add virtual methods to QPDFObject, wrappers to QPDFObjectHandle, and
implementations to all the QPDF_Object types.
2013-01-22 10:01:45 -05:00
Jay Berkenbilt
f81152311e
Add QPDFObjectHandle::parseContentStream method
...
This method allows parsing of the PDF objects in a content stream or
array of content streams.
2013-01-20 15:35:39 -05:00
Jay Berkenbilt
1d88955fa6
Added new QPDFObjectHandle types Keyword and InlineImage
...
These object types are to facilitate content stream parsing.
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
0e9949afde
Update versions for 4.0.0 release
2012-12-31 11:43:27 -05:00
Jay Berkenbilt
f8306913ba
Update "C" API with functions for new features
2012-12-31 10:32:32 -05:00
Jay Berkenbilt
ae1385cd8a
Update ChangeLog with recent changes
2012-12-31 10:32:32 -05:00
Jay Berkenbilt
04c203ae06
Eliminate flattenScalarReferences
2012-12-31 05:36:48 -05:00
Jay Berkenbilt
7f84239cad
Find PDF header anywhere in the first 1024 bytes
2012-12-25 14:43:37 -05:00
Jay Berkenbilt
739a78e200
Add Requires.private to libqpdf.pc for static linking
2012-11-20 13:57: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
b4dc0f072a
Prepare 3.0.2 release
2012-09-06 15:47:58 -04:00
Jay Berkenbilt
c1627d0438
Add QPDFWriter::setExtraHeaderText
2012-09-06 15:31:12 -04:00
Jay Berkenbilt
fc4c82a950
Reset state in QPDF::calculateLinearizationData
...
This makes it possible to use two different writers to write
linearized files from the same QPDF object.
2012-09-06 15:28:16 -04:00
Jay Berkenbilt
8d2b29ef98
Fix segmentation fault with use of QPDFWriter::setOutputMemory
2012-09-06 14:39:06 -04:00
Jay Berkenbilt
59432b5c70
Prepare 3.0.1 release
2012-08-11 13:41:18 -04:00
Jay Berkenbilt
29e9c34fe3
Bug fix: let EOF resolve literal token
...
Previously only whitespace and comments did it. This fix is needed
for object streams whose last object is a literal (name, integer,
real, string) not terminated by space or newline.
2012-08-11 09:29:04 -04:00
Jay Berkenbilt
511e68758c
Update version to 3.0.0
2012-08-02 06:52:33 -04:00
Jay Berkenbilt
4efc915fc1
Make release entry in ChangeLog
2012-07-29 14:44:12 -04:00
Jay Berkenbilt
f689324214
Restore coverage case
...
Previous commit lost coverage case for buffer-based replaceStreamData.
2012-07-25 22:32:14 -04:00
Jay Berkenbilt
31efe701ae
Image comparison tests are off by default
2012-07-21 20:35:00 -04:00