aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2024-01-05 14:49:12 +0100
committerJay Berkenbilt <ejb@ql.org>2024-01-05 14:49:18 +0100
commit1921e44ca7ba50b48b1baa78d147b52fe1aae19a (patch)
tree41d53916b5ac0701004d8c96f56c40123d27e680
parent395bc7f8252d2438c8ee8b26cc430f154e179d1a (diff)
downloadqpdf-1921e44ca7ba50b48b1baa78d147b52fe1aae19a.tar.zst
Update TODO-pages with comments from #1104
-rw-r--r--TODO-pages.md20
1 files changed, 19 insertions, 1 deletions
diff --git a/TODO-pages.md b/TODO-pages.md
index 1e9d1194..2b013b7c 100644
--- a/TODO-pages.md
+++ b/TODO-pages.md
@@ -146,7 +146,9 @@ Broadly, the above has to be modified in the following ways:
* The entire create QPDF logic will move into `QPDFAssembler`.
* `QPDFAssembler`'s API will allow using an arbitrary QPDF as an input rather than having to start
with a file. That makes it possible to do arbitrary work on the PDF prior to passing it to
- `QPDFAssembler`.
+ `QPDFAssembler`. The API contract will state that, if an existing `QPDF` is used as the primary
+ input, the same `QPDF` will be returned. Effectively, `QPDFAssembler` will modify the `QPDF` in
+ place.
* `QPDFAssembler` and `QPDFSplitter` may need a C API, or perhaps C users will have to work through
`QPDFJob`, which will expose nearly all of the functionality.
@@ -184,6 +186,11 @@ to manage sequencing and destination tracking as well as to provide a future-pro
allow developers to automatically benefit from additional document-level support as it is added to
qpdf.
+Other notes:
+* Per jbarlow, raw pointers are hard to work with in pybind11. Use references or shared pointers
+ instead for fluent interfaces.
+
+
## Flexible Assembly
This section discusses modifications to the command-line syntax to make it easier to add flexibility
@@ -407,6 +414,7 @@ Document-level structures to merge:
* AcroForm
* StructTreeRoot
* Page: StructParents
+ * See jbarlow's comments in #1104 for additional notes
* MarkInfo (see 14.7 - Logical Structure, 14.8 Tagged PDF)
* SpiderInfo
* Page: ID
@@ -557,3 +565,13 @@ gh search issues label:pages --repo qpdf/qpdf --limit 200 --state=open
* There is some helpful discussion in #343 including
* Preserving open/closed status
* Preserving javascript actions
+
+# Other use cases
+
+* Other ways to specify pages besides numeric range
+ * all pages reachable from a section of the outline hierarchy
+ * something based on threads or document structure
+ * selection based on page labels
+* Placement for composition, overlay, underlay
+ * Scale the smaller page up to the size of the larger page
+ * Center the smaller page horizontally and bottom-align the trim boxes