Commit Graph

367 Commits

Author SHA1 Message Date
Jay Berkenbilt a372a988fd Switch build from docbook manual to sphinx
Also remove linearization from qpdf-manual.pdf. It's a small file, and
removing the dependency on the qpdf executable significantly shortens
build times.
2021-12-13 11:16:21 -05:00
Jay Berkenbilt 9a5d16a403 Prepare for docbook -> rst: replace SGML entitles
We were using SGML entities for various non-ASCII characters so they
could convert properly for both HTML and print, but this is no longer
necessary as we move from docbook to RST, so just replace them. Note
that the conversions done by sphinx automatically handle "smart
quotes", so it works to just use regular quotes in place of “
and ”.
2021-12-12 16:29:13 -05:00
Jay Berkenbilt f721fed9d6 doc: Replace Gajic with Gajić (finally)
With docbook, this was not converted properly in the PDF version, but
since we are moving out of docbook, we can just put the Unicode
character in the source.
2021-12-12 16:29:13 -05:00
Jay Berkenbilt e5c2bd8b14 TODO: doc conversion notes
Make a list of things that need to be done while converting docbook to
sphinx/rst.
2021-12-12 16:29:13 -05:00
Jay Berkenbilt 29384ecace TODO 2021-12-12 14:58:22 -05:00
Jay Berkenbilt c5708e9180 Update ABI note about fluent interfaces 2021-12-09 10:33:31 -05:00
Jay Berkenbilt 8acb79fc5e Remove notes on safe QPDFObjectHandle -- not worth doing
The impact on the code would be extremely high, and using it would
clutter the code greatly because it would break chaining like
a.getKey("/B").getKey("/C"). There are better ways to deal with the
issue.
2021-12-09 10:33:31 -05:00
Jay Berkenbilt bef2c2222a C API: qpdf_get_last_string_length 2021-12-09 10:33:31 -05:00
Jay Berkenbilt 67b0dbe65f Note about C API enhancement for string length 2021-11-23 16:01:03 -05:00
Jay Berkenbilt 52d6fcf1de Notes on possible safe QPDFObjectHandle 2021-11-22 17:56:20 -05:00
Jay Berkenbilt a63623adce Update notes on API changes for weak crypto 2021-11-19 15:20:12 -05:00
Jay Berkenbilt 750aca5b94 First increment of improving handling of weak crypto (fixes #358) 2021-11-11 12:24:15 -05:00
Jay Berkenbilt 5eac6c500c TODO: update fuzz case information 2021-11-04 14:03:24 -04:00
Jay Berkenbilt a6b0e832a9 TODO: documentation suggestion 2021-09-10 10:52:21 -04:00
Jay Berkenbilt 30ac51bc78 Exclude unreferenced objects in object streams (fixes #520) 2021-05-08 09:42:09 -04:00
Jay Berkenbilt 8971443e46 QPDF::addPage*: handle duplicate pages more robustly 2021-04-05 10:58:10 -04:00
Jay Berkenbilt 2957e9b731 Note on fuzz case 2021-03-27 09:18:36 -04:00
Jay Berkenbilt a77f58142d Remove some assertions that are not necessarily true (fixes #514)
Operations that add the same object to multiple places in the pages
tree are throwing exceptions and then later causing assertion
failures. The assert calls shouldn't be there.
2021-03-21 19:35:23 -04:00
Jay Berkenbilt fb16c546b5 TODO: Comment about making making indirect objects 2021-03-11 12:53:09 -05:00
Jay Berkenbilt d9cb2658d1 TODO: more notes on document-level work 2021-03-05 06:15:48 -05:00
Jay Berkenbilt 0b77f2cf26 Revert non-binary-compatible handleWarning change -- see TODO (ABI) 2021-03-04 15:59:46 -05:00
Jay Berkenbilt c46137432e TODO notes about text appearance streams 2021-03-04 15:08:36 -05:00
Jay Berkenbilt e17585c2d2 Remove unreferenced: ignore names that are not Fonts or XObjects
Converted ResourceFinder to ParserCallbacks so we can better detect
the name that precedes various operators and use the operators to sort
the names into resource types. This enables us to be smarter about
detecting unreferenced resources in pages and also sets the stage for
reconciling differences in /DR across documents.
2021-03-03 17:05:49 -05:00
Jay Berkenbilt 5207c3da71 TODO note about document-level work 2021-03-03 15:16:46 -05:00
Jay Berkenbilt 1886673d7e Spell check 2021-02-23 10:38:05 -05:00
Jay Berkenbilt 1e4c1be267 TODO: notes about document-level work 2021-02-23 10:38:05 -05:00
Jay Berkenbilt d86a4faeeb TODO: add note about updating fuzzer tests 2021-02-22 18:42:06 -05:00
Jay Berkenbilt aa848126cb Comment about QPDFMatrix and QPDFObjectHandle::Matrix 2021-02-21 08:06:19 -05:00
Jay Berkenbilt 3aefdd18a6 TODO: ABI note 2021-02-20 17:52:40 -05:00
Jay Berkenbilt f21e4f264a Add file attachment example 2021-02-18 09:59:03 -05:00
Jay Berkenbilt efdd46da51 TODO: more changes for next ABI update 2021-02-07 19:41:34 -05:00
Jay Berkenbilt e076c9bf08 Remove erroneous handling of /EFF for stream decryption
I thought /EFF was supposed to be used as a default for decrypting
embedded file streams, but actually it's supposed to be advice to a
conforming writer about handling new ones. This makes sense since the
findAttachmentStreams code, which is not actually needed, was never
right.
2021-02-06 17:08:41 -05:00
Jay Berkenbilt 15c17e58a2 TODO: add note about issue 476 with broken files 2021-02-05 05:17:12 -05:00
Jay Berkenbilt 4f103c6182 TODO note about sanitizer 2021-01-27 08:54:27 -05:00
Jay Berkenbilt b5614f611d Implement repair and insert for name/number trees 2021-01-24 19:31:45 -05:00
Jay Berkenbilt d61ffb65d0 Add new constructors for name/number tree helpers
Add constructors that take a QPDF object so we can issue warnings and
create new indirect objects.
2021-01-24 03:27:26 -05:00
Jay Berkenbilt 891751f618 Remove unreferenced resources only from relevant pages 2021-01-04 15:17:35 -05:00
Jay Berkenbilt a9bdeeb0e0 Fix zsh completion arguments (fixes #473) 2021-01-04 15:17:35 -05:00
Jay Berkenbilt f0caf5e22d TODO: remove items I decided not to do 2021-01-04 12:00:21 -05:00
Jay Berkenbilt 98da4fd835 Externalize inline images now includes form XObjects 2021-01-02 14:08:17 -05:00
Jay Berkenbilt bedf35d6a5 Bug fix: avoid extraneous pipeline finish calls with multiple contents
Avoid calling finish() multiple times on the pipeline passed to
pipeContentStreams. This commit also fixes a bug in which qpdf was not
exiting with the proper exit status if warnings found while splitting
pages; this was exposed by a test case that changed.
2021-01-02 14:08:17 -05:00
Jay Berkenbilt a139d2b36d Add several methods for working with form XObjects (fixes #436)
Make some more methods in QPDFPageObjectHelper work with form
XObjects, provide forEach methods to walk through nested form
XObjects, possibly recursively. This should make it easier to work
with form XObjects from user code.
2021-01-02 12:29:31 -05:00
Jay Berkenbilt c9271335fa Add QPDFPageObjectHelper::flattenRotation and --flatten-rotation 2020-12-30 13:03:55 -05:00
Jay Berkenbilt 78c49824eb TODO updates 2020-12-28 13:03:04 -05:00
Jay Berkenbilt d4d7630cf5 Add pdf-custom-filter example 2020-12-28 13:03:04 -05:00
Jay Berkenbilt 39bfa01307 Implement user-provided stream filters
Refactor QPDF_Stream to use stream filter classes to handle supported
stream filters as well.
2020-12-28 12:58:19 -05:00
Jay Berkenbilt 0675a3f61a Decide not to allow stream data providers to modify dictionary 2020-12-26 08:48:20 -05:00
Jay Berkenbilt cc8895078a Add QPDFObjectHandle::makeDirect(bool allow_streams) 2020-12-26 08:48:18 -05:00
Jay Berkenbilt 52e07c813c TODO: remove item I'm not fixing 2020-10-31 13:41:08 -04:00
Jay Berkenbilt 54759cbf63 Remove C++-11 notes from TODO 2020-10-27 18:07:07 -04:00