aboutsummaryrefslogtreecommitdiffstats
path: root/TODO
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-06-25 19:55:45 +0200
committerJay Berkenbilt <ejb@ql.org>2022-06-25 19:55:45 +0200
commit0c7c7e4ba485fd39f5b6d41fa2924c607d2eeda0 (patch)
tree2aff155bc6bac1e5a748262203a18c45096020c7 /TODO
parent25aff0bd52b0382b9349c81aaabc2fde51528923 (diff)
downloadqpdf-0c7c7e4ba485fd39f5b6d41fa2924c607d2eeda0.tar.zst
Track whether certain page modifying methods have been called
We need to know whether pushInheritedAttributesToPage or getAllPages have been called when generating JSON output. When reading the JSON back in, we have to call the same methods so that object numbers will line up properly.
Diffstat (limited to 'TODO')
-rw-r--r--TODO17
1 files changed, 12 insertions, 5 deletions
diff --git a/TODO b/TODO
index 383756f9..270e9df6 100644
--- a/TODO
+++ b/TODO
@@ -9,10 +9,6 @@ Before Release:
* Release qtest with updates to qtest-driver and copy back into qpdf
Next:
-* QPDF -- track whether the pages tree was modified (whether
- getAllPages was ever called. If so, consider generating a non-flat
- pages tree before creating output to better handle files with lots
- of pages.
* JSON v2 fixes
Pending changes:
@@ -44,6 +40,12 @@ Pending changes:
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.
Soon: Break ground on "Document-level work"
@@ -81,7 +83,8 @@ JSON v2 fixes
"qpdf": [
{
"jsonversion": 2,
- "repairpagestree": false,
+ "pushedinheritedpageresources": false,
+ "calledgetallpages": false,
"maxobjectid": 10
},
{
@@ -110,6 +113,10 @@ JSON v2 fixes
the same number of elements whose individual elements are
validated according to the regular rules.
+ * When reading back in, we'll have to call
+ pushInheritedAttributesToPage or getAllPages based on the values
+ of the metadata.
+
* Support json v2 in the C API. At a minimum, write_json,
create_from_json, and update_from_json need to be there and should
take the same kinds of functions as the C API for logger.