mirror of https://github.com/qpdf/qpdf.git
TODO: rescope some items
This commit is contained in:
parent
433be3718a
commit
48dfae6443
61
TODO
61
TODO
|
@ -21,31 +21,15 @@ Pending changes:
|
|||
appimage build specifically is setting the runpath, which is
|
||||
actually desirable in this case. Make sure to understand and
|
||||
document this. Maybe add a check for it in the build.
|
||||
* Decide what to do about #664 (get*Box)
|
||||
* Add an option --ignore-encryption to ignore encryption information
|
||||
and treat encrypted files as if they weren't encrypted. This should
|
||||
make it possible to solve #598 (--show-encryption without a
|
||||
password). We'll need to make sure we don't try to filter any
|
||||
streams in this mode. Ideally we should be able to combine this with
|
||||
--json so we can look at the raw encrypted strings and streams if we
|
||||
want to, though be sure to document that the resulting JSON won't be
|
||||
convertible back to a valid PDF. Since providing the password may
|
||||
reveal additional details, --show-encryption could potentially retry
|
||||
with this option if the first time doesn't work. Then, with the file
|
||||
open, we can read the encryption dictionary normally.
|
||||
* In libtests, separate executables that need the object library
|
||||
from those that strictly use public API. Move as many of the test
|
||||
drivers from the qpdf directory into the latter category as long
|
||||
as doing so isn't too troublesome from a coverage standpoint.
|
||||
* Consider adding fuzzer code for JSON
|
||||
* Consider generating a non-flat pages tree before creating output to
|
||||
better handle files with lots of pages. If there are more than 256
|
||||
pages, add a second layer with the second layer nodes having no more
|
||||
than 256 nodes and being as evenly sizes as possible. Don't worry
|
||||
about the case of more than 65,536 pages. If the top node has more
|
||||
than 256 children, we'll live with it.
|
||||
|
||||
Parent pointer idea:
|
||||
Soon: Break ground on "Document-level work"
|
||||
|
||||
Fix Multiple Direct Object Owner Issue
|
||||
======================================
|
||||
|
||||
These are some ideas I've had, but I'm parking them until I fully
|
||||
understand m-holger's proposal to split QPDFObject into QPDFObject and
|
||||
QPDFValue.
|
||||
|
||||
* Add std::weak_ptr<QPDFObject> parent to QPDFObject. When adding a
|
||||
direct object to an array or dictionary, set its parent. When
|
||||
|
@ -65,8 +49,6 @@ Note that arrays and dictionaries still need to contain
|
|||
QPDFObjectHandle because of indirect objects. This only pertains to
|
||||
direct objects, which are always "resolved" in QPDFObjectHandle.
|
||||
|
||||
Soon: Break ground on "Document-level work"
|
||||
|
||||
Possible future JSON enhancements
|
||||
=================================
|
||||
|
||||
|
@ -376,8 +358,35 @@ directory or that are otherwise not publicly accessible. This includes
|
|||
things sent to me by email that are specifically not public. Even so,
|
||||
I find it useful to make reference to them in this list.
|
||||
|
||||
* Add an option --ignore-encryption to ignore encryption information
|
||||
and treat encrypted files as if they weren't encrypted. This should
|
||||
make it possible to solve #598 (--show-encryption without a
|
||||
password). We'll need to make sure we don't try to filter any
|
||||
streams in this mode. Ideally we should be able to combine this with
|
||||
--json so we can look at the raw encrypted strings and streams if we
|
||||
want to, though be sure to document that the resulting JSON won't be
|
||||
convertible back to a valid PDF. Since providing the password may
|
||||
reveal additional details, --show-encryption could potentially retry
|
||||
with this option if the first time doesn't work. Then, with the file
|
||||
open, we can read the encryption dictionary normally.
|
||||
|
||||
* In libtests, separate executables that need the object library
|
||||
from those that strictly use public API. Move as many of the test
|
||||
drivers from the qpdf directory into the latter category as long
|
||||
as doing so isn't too troublesome from a coverage standpoint.
|
||||
|
||||
* Consider generating a non-flat pages tree before creating output to
|
||||
better handle files with lots of pages. If there are more than 256
|
||||
pages, add a second layer with the second layer nodes having no more
|
||||
than 256 nodes and being as evenly sizes as possible. Don't worry
|
||||
about the case of more than 65,536 pages. If the top node has more
|
||||
than 256 children, we'll live with it. This is only safe if all
|
||||
intermediate page nodes have only /Kids, /Parent, /Type, and /Count.
|
||||
|
||||
* Look at https://bestpractices.coreinfrastructure.org/en
|
||||
|
||||
* Consider adding fuzzer code for JSON
|
||||
|
||||
* Rework tests so that nothing is written into the source directory.
|
||||
Ideally then the entire build could be done with a read-only
|
||||
source tree.
|
||||
|
|
Loading…
Reference in New Issue