Commit 1921e44ca7ba50b48b1baa78d147b52fe1aae19a

Authored by Jay Berkenbilt
1 parent 395bc7f8

Update TODO-pages with comments from #1104

Showing 1 changed file with 19 additions and 1 deletions
TODO-pages.md
@@ -146,7 +146,9 @@ Broadly, the above has to be modified in the following ways: @@ -146,7 +146,9 @@ Broadly, the above has to be modified in the following ways:
146 * The entire create QPDF logic will move into `QPDFAssembler`. 146 * The entire create QPDF logic will move into `QPDFAssembler`.
147 * `QPDFAssembler`'s API will allow using an arbitrary QPDF as an input rather than having to start 147 * `QPDFAssembler`'s API will allow using an arbitrary QPDF as an input rather than having to start
148 with a file. That makes it possible to do arbitrary work on the PDF prior to passing it to 148 with a file. That makes it possible to do arbitrary work on the PDF prior to passing it to
149 - `QPDFAssembler`. 149 + `QPDFAssembler`. The API contract will state that, if an existing `QPDF` is used as the primary
  150 + input, the same `QPDF` will be returned. Effectively, `QPDFAssembler` will modify the `QPDF` in
  151 + place.
150 * `QPDFAssembler` and `QPDFSplitter` may need a C API, or perhaps C users will have to work through 152 * `QPDFAssembler` and `QPDFSplitter` may need a C API, or perhaps C users will have to work through
151 `QPDFJob`, which will expose nearly all of the functionality. 153 `QPDFJob`, which will expose nearly all of the functionality.
152 154
@@ -184,6 +186,11 @@ to manage sequencing and destination tracking as well as to provide a future-pro @@ -184,6 +186,11 @@ to manage sequencing and destination tracking as well as to provide a future-pro
184 allow developers to automatically benefit from additional document-level support as it is added to 186 allow developers to automatically benefit from additional document-level support as it is added to
185 qpdf. 187 qpdf.
186 188
  189 +Other notes:
  190 +* Per jbarlow, raw pointers are hard to work with in pybind11. Use references or shared pointers
  191 + instead for fluent interfaces.
  192 +
  193 +
187 ## Flexible Assembly 194 ## Flexible Assembly
188 195
189 This section discusses modifications to the command-line syntax to make it easier to add flexibility 196 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: @@ -407,6 +414,7 @@ Document-level structures to merge:
407 * AcroForm 414 * AcroForm
408 * StructTreeRoot 415 * StructTreeRoot
409 * Page: StructParents 416 * Page: StructParents
  417 + * See jbarlow's comments in #1104 for additional notes
410 * MarkInfo (see 14.7 - Logical Structure, 14.8 Tagged PDF) 418 * MarkInfo (see 14.7 - Logical Structure, 14.8 Tagged PDF)
411 * SpiderInfo 419 * SpiderInfo
412 * Page: ID 420 * Page: ID
@@ -557,3 +565,13 @@ gh search issues label:pages --repo qpdf/qpdf --limit 200 --state=open @@ -557,3 +565,13 @@ gh search issues label:pages --repo qpdf/qpdf --limit 200 --state=open
557 * There is some helpful discussion in #343 including 565 * There is some helpful discussion in #343 including
558 * Preserving open/closed status 566 * Preserving open/closed status
559 * Preserving javascript actions 567 * Preserving javascript actions
  568 +
  569 +# Other use cases
  570 +
  571 +* Other ways to specify pages besides numeric range
  572 + * all pages reachable from a section of the outline hierarchy
  573 + * something based on threads or document structure
  574 + * selection based on page labels
  575 +* Placement for composition, overlay, underlay
  576 + * Scale the smaller page up to the size of the larger page
  577 + * Center the smaller page horizontally and bottom-align the trim boxes