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
b72a38bf5f
Reorganize some test cases
...
Too many test cases were "miscellaneous".
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
21b7481b0e
Push members of QPDFObjectHandle into a Members object
...
As in other cases, this is to enable adding new member variables in
the future without breaking ABI compatibility.
2018-02-18 21:06:27 -05:00
Jay Berkenbilt
e410b0fe0d
Simplify TokenFilter interface
...
Expose Pl_QPDFTokenizer, and have it do more of the work of managing
the token filter's pipeline.
2018-02-18 21:05:47 -05:00
Jay Berkenbilt
1fdd86a049
Move Pl_QPDFTokenizer to public interface
2018-02-18 21:05:47 -05:00
Jay Berkenbilt
5708b5d0aa
Add additional interface for filtering page contents
2018-02-18 21:05:47 -05:00
Jay Berkenbilt
fd02944e19
Clean up comment
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
cc108a7f1b
Use pipePageContents in tokenizer test
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
05ff619b09
Remove redundant method
...
Remove a redundant method that was equal to another one with
additional arguments. This breaks binary compatibility, but there are
other ABI breaking changes in the upcoming release, so now is the time
to do it.
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
55ee55394c
Use inline image token in content parser
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
ba453ba4ff
Use space tokens in tokenizer filter
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
ec538792fa
Use inline image token type in tokenizer filter
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
5b5f45e9dd
Remove lexer rewrite notes from TODO
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
2699ecf13e
Push QPDFTokenizer members into a nested structure
...
This is for protection against future ABI breaking changes.
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
bb9e91adbd
Create isolated tokenizer tests
...
This tokenizes outer parts of the file, page content streams, and
object streams. It is for exercising the tokenizer in isolation and is
being introduced before reworking the lexical layer of qpdf.
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
a0fd8875aa
Fix typo in travis file
2018-02-18 20:17:08 -05:00
Jay Berkenbilt
cef637d8e1
Fix typo in manual page ( fixes #181 )
2018-02-18 20:09:18 -05:00
Jay Berkenbilt
c8dc484fdf
Tweak release instructions, support signed AppImage
2018-02-18 20:09:18 -05:00
Jay Berkenbilt
894fc8ef2f
Remove junk from logo ps file
2018-02-18 00:17:48 -05:00
Jay Berkenbilt
d98651c5af
Fix website address
2018-02-18 00:12:41 -05:00
Jay Berkenbilt
4f47f924a1
Add logo and build status to README
2018-02-18 00:07:20 -05:00
Jay Berkenbilt
7805352fd0
Reduce default size of the logo
2018-02-18 00:05:37 -05:00
Jay Berkenbilt
1e86f3ab70
Complete .travis.yml and AppImage support ( fixes #160 , #161 )
2018-02-17 23:39:14 -05:00
Jay Berkenbilt
356e715228
Hand-coded PostScript logo; semi-automated svg logo
2018-02-17 23:35:42 -05:00
probonopd
83d82a85d0
Contributed AppImage and .travis.yml support
2018-02-17 23:35:42 -05:00
Jay Berkenbilt
2ebdd6929e
Prepare 7.1.1 release
2018-02-04 18:31:42 -05:00
Jay Berkenbilt
e3167c1a60
Fix linearization for files with nonstandard ID length
2018-02-04 18:16:23 -05:00
Jay Berkenbilt
9732de7ea4
Rename test output files ( fixes #173 )
...
Some file names had `...` in their name, which causes problems on some
systems.
2018-02-04 14:26:34 -05:00
Jay Berkenbilt
95ba7125ff
Fix link order ( fixes #176 )
...
Specify qpdf libraries before external ones.
Specify LDFLAGS before libraries.
This should eliminate remaining cases of qpdf builds favoring
previously installed versions.
2018-02-04 14:19:00 -05:00
Jay Berkenbilt
3b2a3cdd77
Fix setLineBuf for bsd ( fixes #177 )
...
Use 0 instead of NULL in a cast.
2018-02-04 14:19:00 -05:00
Jay Berkenbilt
d5bfd49cb2
Remove use of std::abs ( fixes #172 )
...
Different compilers want different choices of headers for std::abs.
It's easier to just to not use it.
2018-02-04 14:19:00 -05:00
Jay Berkenbilt
34a9b835b0
Fix indentation
2018-02-04 14:19:00 -05:00
Jay Berkenbilt
559eefa9d0
Add comment to setStaticID call
2018-02-04 14:19:00 -05:00
Jay Berkenbilt
7e5e1a7158
Fix offset in error message
2018-02-04 14:19:00 -05:00