Jay Berkenbilt
4bb3046f0b
Properly handle strings with PDF Doc Encoding ( fixes #179 )
...
The QPDF_String::getUTF8Val() method was not treating strings that
weren't explicitly Unicode as PDF Doc Encoded. This only affects
characters in the range 0x80 through 0xa0.
2018-02-18 21:06:27 -05:00
Jay Berkenbilt
2780a1871d
Add C API for checking PDF files
2018-02-18 21:06:27 -05:00
Jay Berkenbilt
d0e99f195a
More robust handling of type errors
...
Give objects descriptions and context so it is possible to issue
warnings instead of fatal errors for attempts to access objects of the
wrong type.
2018-02-18 21:06:27 -05:00
Jay Berkenbilt
c2e16827b6
Replace "file position" with "offset" in error messages
...
Sometimes it's an offset in an object stream or a content stream, so
file position is confusing in some cases.
2018-02-18 21:06:27 -05:00
Jay Berkenbilt
52e024f701
Include omitted object description in error message
2018-02-18 21:06:27 -05:00
Jay Berkenbilt
cb3b705cf9
Include filename in object stream parse error
2018-02-18 21:06:27 -05:00
Jay Berkenbilt
5708b5d0aa
Add additional interface for filtering page contents
2018-02-18 21:05:47 -05:00
Jay Berkenbilt
510d45d00d
General comment in ChangeLog
2018-02-18 21:05:47 -05:00
Jay Berkenbilt
5136238f2a
Detect and report bad tokens in content normalization
2018-02-18 21:05:47 -05:00
Jay Berkenbilt
30709935af
Filter tokens example
2018-02-18 21:05:47 -05:00
Jay Berkenbilt
9910104442
Implement TokenFilter and refactor Pl_QPDFTokenizer
...
Implement a TokenFilter class and refactor Pl_QPDFTokenizer to use a
TokenFilter class called ContentNormalizer. Pl_QPDFTokenizer is now a
general filter that passes data through a TokenFilter.
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
b8723e97f4
Add coalesce contents capability
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
25988e8d10
Bug fix: content normalizer should not add trailing newline
...
Adding a trailing newline in content normalization damages files whose
contents are split across streams in the middle of tokens. Let
QPDFWriter add the newline with the indicator to ignore the newline,
which it already does. This changes the way some qdf files look.
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
fcd611b61e
Refactor parseContentStream
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
fefe25030e
Inline image token type
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
d97474868d
Lexer enhancements: EOF, comment, space
...
Significant enhancements to the lexer to improve EOF handling and to
support comments and spaces as tokens. Various other minor issues were
fixed as well.
2018-02-18 20:18:40 -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
2ebdd6929e
Prepare 7.1.1 release
2018-02-04 18:31:42 -05:00
Jay Berkenbilt
2e4ca7ecf4
Update version numbers for 7.1.0
2018-01-14 20:09:20 -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
791e0db762
Allow trailing . in numeric token ( fixes #165 )
2018-01-13 20:05:40 -05:00
Jay Berkenbilt
6299c64cf3
Use correct link directory order ( fixes #158 )
...
Make sure to link from the source tree before linking from the system.
In many environments, this is necessary to allow a newly built qpdf to
link properly instead of trying to link or resolve libraries from an
older installed version.
2018-01-13 19:53:52 -05:00
Jay Berkenbilt
ec0087e3ce
Support TIFF Predictor ( fixes #171 )
2018-01-13 19:49:42 -05:00
Jay Berkenbilt
48864b8d6e
Clarify documentation of advanced parsing options
2017-12-25 18:42:33 -05:00
Jay Berkenbilt
794b649e5b
Update TODO and ChangeLog. Fixes #166 , #83
2017-12-25 18:29:18 -05:00
Jay Berkenbilt
0f1ce8e646
Prepare 7.0.0 release
2017-09-16 13:22:15 -04: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
d31a7b76e7
Improve message for stream decoding error
...
Tweak the message so that we inform the user that we are mitigating
data loss.
2017-09-12 16:03:48 -04:00
Jay Berkenbilt
eaacf94005
Update C API with new QPDFWriter methods
2017-09-12 14:30:39 -04:00
Jay Berkenbilt
ad527a64f9
Parse iteratively to avoid stack overflow ( fixes #146 )
2017-08-25 21:56:45 -04:00
Jay Berkenbilt
85f05cc57f
Detect xref pointer infinite loop ( fixes #149 )
2017-08-25 19:58:31 -04:00
Jay Berkenbilt
1e52d33822
Bump soname to 18 and version to 7.0.b1
2017-08-22 16:50:48 -04:00
Jay Berkenbilt
6219111ed7
Update references to README files
...
Most of the README files have been renamed. Refer to the new names.
2017-08-22 14:13:10 -04:00
Jay Berkenbilt
4b908ade70
Update header documentation and ChangeLog entry for PCLm
2017-08-21 21:05:44 -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
ae0399ef87
Revert "Add page rotation example in contrib"
...
This reverts commit 8ee83ca722
.
This is being removed because qpdf now has its own page rotation. The
example was an excellent contribution to qpdf, but now it illustrates
rotating pages "by hand", which is no longer needed because of
QPDFObjectHandle::rotatePage.
2017-08-12 22:58:11 -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
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
36b3fe5af7
Fix --newline-before-endstream option ( fixes #133 )
...
Add a newline unconditionally before endstream even if a newline was
already written as part of the stream data.
2017-08-11 20:57:05 -04:00
Jay Berkenbilt
8fe0b06cd8
Pad encryption parameters that are too short ( fixes #96 )
2017-08-11 19:53:56 -04:00
Jay Berkenbilt
9a96e233b0
Remove PCRE
2017-08-10 21:30:32 -04:00
Jay Berkenbilt
30f109e244
Read xref table without PCRE
...
Also accept more errors than before.
2017-08-10 21:30:32 -04:00
Jay Berkenbilt
ca5b1d267a
Improve stream length recovery
...
Eliminate PCRE and find endobj not preceded by endstream. Be more lax
about placement of endstream and endobj.
2017-08-10 21:30:32 -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
49825e5cb6
Add --split-pages option ( fixes #30 )
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
c88eaae2f2
Fix off-by-one error in --pages argument parsing ( fixes #129 )
2017-08-02 21:08:43 -04:00
iskander.sharipov
8ee83ca722
Add page rotation example in contrib
...
This is added to contrib rather than examples because it requires
c++-11 and lacks a test suite, but it is still useful enough to
include with the distribution.
2017-07-30 08:55:15 -04:00