Commit 1921e44ca7ba50b48b1baa78d147b52fe1aae19a
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 |