Commit 7f4d238c534003e33c911c986ea063601e1162ec
1 parent
ee437705
TODO
Showing
1 changed file
with
5 additions
and
85 deletions
TODO
| 1 | - | ||
| 2 | -Current | ||
| 3 | -======= | ||
| 4 | - | ||
| 5 | - * open bugs | ||
| 6 | - * Important but non-trivial | ||
| 7 | - #240 -- invalid indirect references | ||
| 8 | - #209, #231 -- assert in linearization checks | ||
| 9 | - * Security | ||
| 10 | - #263 -- segv | ||
| 11 | - * Performance | ||
| 12 | - #243 -- very slow processing of something | ||
| 13 | - * Easy | ||
| 14 | - #266 -- get final PDF version from QPDFWriter | ||
| 15 | - #259 -- page collation | ||
| 16 | - | ||
| 17 | - * Generate appearance streams. QPDFAcroFormDocumentHelper.hh: | ||
| 18 | - | ||
| 19 | - // If /NeedAppearances is true, generate appearance streams for | ||
| 20 | - // all widget annotations. Note that qpdf's abilitiy to generate | ||
| 21 | - // appearance streams is quite limited. We can only generate | ||
| 22 | - // appearance streams for streams of type variable text, and even | ||
| 23 | - // then, the appearance stream just uses the default parameters | ||
| 24 | - // specified to substitute the form field's value into the | ||
| 25 | - // provided appearance stream. This means that appearance streams | ||
| 26 | - // will likely not look right for any form field values that | ||
| 27 | - // contain characters outside the range of PDF Doc Encoding. Also, | ||
| 28 | - // quadding is ignored. | ||
| 29 | - QPDF_DLL | ||
| 30 | - void generateAppearancesIfNeeded(); | ||
| 31 | - | ||
| 32 | - See need-appearances.pdf, which is based on form-field-types.pdf | ||
| 33 | - and can be modified as needed. Search for it in qpdf.test | ||
| 34 | - | ||
| 35 | - Close #72 when done. | ||
| 36 | - | ||
| 37 | - * form field inclusion in json at document and page level | ||
| 38 | - * values | ||
| 39 | - * names | ||
| 40 | - * other stuff? | ||
| 41 | - | ||
| 42 | - * special mode for compressing images with DCT | ||
| 43 | - * allow specifying a minimum width, height, or pixel area with | ||
| 44 | - sensible defaults | ||
| 45 | - * never replace an image if the replacement is not smaller than the | ||
| 46 | - original | ||
| 47 | - | ||
| 48 | Soon | 1 | Soon |
| 49 | ==== | 2 | ==== |
| 50 | 3 | ||
| 4 | + * Set up OSS-Fuzz (Google). See starred email in qpdf label. | ||
| 5 | + | ||
| 6 | + * Issue #219, not requiring QPDF reference of copied object to be | ||
| 7 | + kept around. Comments are in the issue. | ||
| 8 | + | ||
| 51 | * Figure out how to render Gajić correctly in the PDF version of the | 9 | * Figure out how to render Gajić correctly in the PDF version of the |
| 52 | qpdf manual. | 10 | qpdf manual. |
| 53 | 11 | ||
| @@ -178,8 +136,6 @@ I find it useful to make reference to them in this list | @@ -178,8 +136,6 @@ I find it useful to make reference to them in this list | ||
| 178 | 136 | ||
| 179 | * Pl_TIFFPredictor is pretty slow. | 137 | * Pl_TIFFPredictor is pretty slow. |
| 180 | 138 | ||
| 181 | - * Maybe disambiguate resources when flattening annotations | ||
| 182 | - | ||
| 183 | * Some test cases on bad fails fail because qpdf is unable to find | 139 | * Some test cases on bad fails fail because qpdf is unable to find |
| 184 | the root dictionary when it fails to read the trailer. Recovery | 140 | the root dictionary when it fails to read the trailer. Recovery |
| 185 | could find the root dictionary and even the info dictionary in | 141 | could find the root dictionary and even the info dictionary in |
| @@ -205,40 +161,14 @@ I find it useful to make reference to them in this list | @@ -205,40 +161,14 @@ I find it useful to make reference to them in this list | ||
| 205 | for "Regarding write functionality", and read that comment and the | 161 | for "Regarding write functionality", and read that comment and the |
| 206 | responses to it. | 162 | responses to it. |
| 207 | 163 | ||
| 208 | - * Form flattening: there is on-going work on this topic. The primary | ||
| 209 | - tracking issue is https://github.com/qpdf/qpdf/issues/72, and there | ||
| 210 | - has also been discussion in private email threads. My notes are | ||
| 211 | - summarized in ../misc/form-flattening/README (not publicly | ||
| 212 | - accessible), but all important information is in issues in github. | ||
| 213 | - The non-public items in my notes are transcripts of discussions | ||
| 214 | - with a google summer of code student who was working on the issue. | ||
| 215 | - These notes likely have low value at this point, but I have saved | ||
| 216 | - them to review in case form flattening ever moves into the qpdf | ||
| 217 | - library from external tools where it is currently being | ||
| 218 | - implemented. Note that flattening forms with appearance streams is | ||
| 219 | - relatively straightforward, but many PDF files don't have | ||
| 220 | - appearance streams and leave rendering of the form fields to the | ||
| 221 | - viewer. Handling this in the general case is probably out of scope | ||
| 222 | - for what will be in qpdf in the foreseeable future, particularly in | ||
| 223 | - the area of embedding and subsetting fonts. | ||
| 224 | - | ||
| 225 | * Look at ~/Q/pdf-collection/forms-from-appian/ | 164 | * Look at ~/Q/pdf-collection/forms-from-appian/ |
| 226 | 165 | ||
| 227 | - * Look at Travis-CI for qpdf. See email from Travis-CI in pending. | ||
| 228 | - | ||
| 229 | - * https://github.com/qpdf/qpdf/pull/172 contains information about | ||
| 230 | - running through MacPorts's CI. | ||
| 231 | - | ||
| 232 | * Consider adding "uninstall" target to makefile. It should only | 166 | * Consider adding "uninstall" target to makefile. It should only |
| 233 | uninstall what it installed, which means that you must run | 167 | uninstall what it installed, which means that you must run |
| 234 | uninstall from the version you ran install with. It would only be | 168 | uninstall from the version you ran install with. It would only be |
| 235 | supported for the toolchains that support the install target | 169 | supported for the toolchains that support the install target |
| 236 | (libtool). | 170 | (libtool). |
| 237 | 171 | ||
| 238 | - * Figure out how to find Visual Studio in Windows registry and see if | ||
| 239 | - I can get it to work with make so I can simplify creation of | ||
| 240 | - Windows releases. | ||
| 241 | - | ||
| 242 | * Provide support in QPDFWriter for writing incremental updates. | 172 | * Provide support in QPDFWriter for writing incremental updates. |
| 243 | Provide support in qpdf for preserving incremental updates. The | 173 | Provide support in qpdf for preserving incremental updates. The |
| 244 | goal should be that QDF mode should be fully functional for files | 174 | goal should be that QDF mode should be fully functional for files |
| @@ -278,8 +208,6 @@ I find it useful to make reference to them in this list | @@ -278,8 +208,6 @@ I find it useful to make reference to them in this list | ||
| 278 | the number of identical calls could improve performance for | 208 | the number of identical calls could improve performance for |
| 279 | workloads that involve processing large numbers of small files. | 209 | workloads that involve processing large numbers of small files. |
| 280 | 210 | ||
| 281 | - * Consider providing a Windows installer for qpdf using NSIS. | ||
| 282 | - | ||
| 283 | * Consider adding a method to balance the pages tree. It would call | 211 | * Consider adding a method to balance the pages tree. It would call |
| 284 | pushInheritedAttributesToPage, construct a pages tree from scratch, | 212 | pushInheritedAttributesToPage, construct a pages tree from scratch, |
| 285 | and replace the /Pages key of the root dictionary with the new | 213 | and replace the /Pages key of the root dictionary with the new |
| @@ -369,14 +297,6 @@ I find it useful to make reference to them in this list | @@ -369,14 +297,6 @@ I find it useful to make reference to them in this list | ||
| 369 | viewing software silently ignores objects of this type, so this is | 297 | viewing software silently ignores objects of this type, so this is |
| 370 | probably not a big deal. | 298 | probably not a big deal. |
| 371 | 299 | ||
| 372 | - * If we ever want to have check mode check the integrity of the free | ||
| 373 | - list, this can be done by looking at the code from prior to the | ||
| 374 | - object stream support of 4/5/2008. It's in an if (0) block and | ||
| 375 | - there's a comment about it. There's also something about it in | ||
| 376 | - qpdf.test -- search for "free table". On the other hand, the value | ||
| 377 | - of doing this seems very low since no viewer seems to care, so it's | ||
| 378 | - probably not worth it. | ||
| 379 | - | ||
| 380 | * QPDFObjectHandle::getPageImages() doesn't notice images in | 300 | * QPDFObjectHandle::getPageImages() doesn't notice images in |
| 381 | inherited resource dictionaries. See comments in that function. | 301 | inherited resource dictionaries. See comments in that function. |
| 382 | 302 |