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 | Soon | 66 | Soon |
| 2 | ==== | 67 | ==== |
| 3 | 68 |