Commit edc3b309bce1f9aed383a4911ff7ea5b6bb7c9e9

Authored by Jay Berkenbilt
1 parent c18ee440

TODO

Showing 1 changed file with 64 additions and 0 deletions
  1 +Pending Doc Updates
  2 +===================
  3 +
  4 +Unicode Passwords
  5 +
  6 +Release notes
  7 +
  8 +* Windows now interprets CLI arguments as Unicode. Explain the
  9 + non-compatibility and how it is unavoidable.
  10 +* Refer to the manual for the rest
  11 +
  12 +Regular manual
  13 +
  14 +* Explain the password modes, how they work, and when you would need
  15 + to use other than auto (e.g. overriding automatic detection of
  16 + UTF-8, forcibly creating a file with incorrect encoding for tests,
  17 + etc.)
  18 +* Explain limitations around BiDi and normalize
  19 +* Explain that the features are CLI and that the library, for
  20 + compatibility, still expects bytes. Refer to the transcoding methods.
  21 + - Document that users should pass an appropriately encoded string:
  22 + PDF Doc for R3 and R4, and UTF-8 for R5 and R6, and that they can
  23 + use QUtil::utf8_to_pdf_doc to achieve this.
  24 +* Talk about automatic password recovery and what it does.
  25 +
  26 +Possible text
  27 +
  28 + - password modes:
  29 + - hex-bytes: hex-encoded bytes for password
  30 + - bytes: take the bytes as they are
  31 + - unicode: utf8-encoded, with notes about Windows doing this by default
  32 + - auto: determine automatically
  33 + - Note that --password-is-hex-key applies only to the main password
  34 + and is only related to reading. It bypasses the password checks
  35 + entirely and is not a password mode. The --password-mode option
  36 + tells qpdf how to interpret the password used in writing.
  37 + - Behavior of unicode: Fail if the password is not valid UTF-8.
  38 + For R <= 4 fail if the password cannot be transcoded to PDFDoc
  39 + without loss.
  40 + - Behavior of auto: For R >= 5 fail if the password is not valid
  41 + UTF-8 and tell the user about bytes. For R <= 4, if string is
  42 + valid UTF-8 and is able to be successfully transcoded to PDFDoc,
  43 + transcode it; otherwise fall back to bytes.
  44 + - For bytes and hexbytes, just treat the passwords as given,
  45 + documenting the change for Windows that incoming arguments are
  46 + UTF-8 starting in 8.4.
  47 + - Note that, for Windows, there is no guaranteed compatibility
  48 + because of the switch to wmain. For Non-Windows, "bytes" gives
  49 + backward compatibility, but "auto" will fix the bug of qpdf
  50 + generating invalid passwords when accented characters were used.
  51 + Take special note of @file password arguments, which are not
  52 + converted automatically to Unicode on Windows like CLI args are.
  53 +
  54 + Don't bother with normalize and BiDi for Unicode as that requires
  55 + something like ICU. If we ever do that, we can add additional flags
  56 + and method calls.
  57 +
1 58 Soon
2 59 ====
3 60  
... ... @@ -111,6 +168,13 @@ I find it useful to make reference to them in this list
111 168 * Figure out how to render Gajić correctly in the PDF version of the
112 169 qpdf manual.
113 170  
  171 + * Decide whether errors thrown by checkLinearization should be
  172 + converted to warnings. Take a pass through the linearization code
  173 + to see whether it's correct. Be able to view linearization data
  174 + even when there are errors. See linearization label in github.
  175 +
  176 + * Consider creating a PPA for Ubuntu
  177 +
114 178 * Add method to push inheritable resources to a single page by
115 179 walking up and copying without overwrite. Above logic will also be
116 180 sufficient to fix the limitation in
... ...