Commit 2e2223ffe15d0f5b1d26e38c75df28c499fcc3e4
1 parent
6048c6e2
TODO
Showing
1 changed file
with
65 additions
and
0 deletions
TODO
| 1 | + | |
| 2 | +Current | |
| 3 | +======= | |
| 4 | + | |
| 5 | + * open bugs | |
| 6 | + | |
| 7 | + * form features | |
| 8 | + * flatten | |
| 9 | + * include in json at document and page level | |
| 10 | + * values | |
| 11 | + * names | |
| 12 | + * other stuff? | |
| 13 | + * preserve when merging and splitting; functionality should be | |
| 14 | + similar to outlines. | |
| 15 | + * set value? | |
| 16 | + * maybe basic appearance generation for values within pdf doc | |
| 17 | + encoding that don't use subsetted fonts | |
| 18 | + | |
| 19 | + * replace mode: --replace-object, --replace-stream-raw, | |
| 20 | + --replace-stream-filtered | |
| 21 | + * update first paragraph of QPDF JSON in the manual to mention this | |
| 22 | + * object numbers are not stable | |
| 23 | + * you don't have to specify length for streams | |
| 24 | + * you only have to specify filtering for streams if providing raw data | |
| 25 | + | |
| 26 | + * special mode for compressing images with DCT | |
| 27 | + * allow specifying a single image, all images, images based on | |
| 28 | + size, specific images | |
| 29 | + * never replace an image if the replacement is not smaller than the | |
| 30 | + original | |
| 31 | + | |
| 32 | + * bookmarks (outlines) 12.3.3 | |
| 33 | + * support bookmarks when merging | |
| 34 | + * prune bookmarks that don't point to a surviving page when merging | |
| 35 | + or splitting | |
| 36 | + * make sure conflicting named destinations work possibly test by | |
| 37 | + including the same file by two paths in a merge | |
| 38 | + | |
| 39 | + When pruning outlines, keep all outlines in the hierarchy that are | |
| 40 | + above an outline for a page we care about. If one of the ancestor | |
| 41 | + outlines points to a non-existent page, clear its dest. If an | |
| 42 | + outline does not have any children that point to pages in the | |
| 43 | + document, just omit it. | |
| 44 | + | |
| 45 | + Possible strategy: | |
| 46 | + * resolve all named destinations to explicit destinations | |
| 47 | + * concatenate top-level outlines | |
| 48 | + * prune outlines whose dests don't point to a valid page | |
| 49 | + * recompute all /Count fields | |
| 50 | + | |
| 51 | + Test files | |
| 52 | + * page-labels-and-outlines.pdf: old file with both page labels and | |
| 53 | + outlines. All destinations are explicit destinations. Each page | |
| 54 | + has Potato and a number. All titles are feline names. | |
| 55 | + * outlines-with-actions.pdf: mixture of explicit destinations, | |
| 56 | + named destinations, goto actions with explicit destinations, and | |
| 57 | + goto actions with named destinations; uses /Dests key in names | |
| 58 | + dictionary. Each page has Salad and a number. All titles are | |
| 59 | + silly words. One destination is an indirect object. | |
| 60 | + * outlines-with-old-root-dests.pdf: like outlines-with-actions | |
| 61 | + except it uses the PDF-1.1 /Dests dictionary for named | |
| 62 | + destinations, and each page has Soup and a number. Also pages are | |
| 63 | + numbered with upper-case Roman numerals starting with 0. All | |
| 64 | + titles are silly words preceded by a bullet. | |
| 65 | + | |
| 1 | 66 | Soon |
| 2 | 67 | ==== |
| 3 | 68 | ... | ... |