Commit c46137432e19c0701624eb3bcb954b4cf39ec6f5
1 parent
887f35ef
TODO notes about text appearance streams
Showing
1 changed file
with
31 additions
and
0 deletions
TODO
| ... | ... | @@ -34,6 +34,37 @@ Document-level work |
| 34 | 34 | --copy-attachments-from to preserve these. What will the strategy be |
| 35 | 35 | for deduplicating in the automatic case? |
| 36 | 36 | |
| 37 | +Text Appearance Streams | |
| 38 | +======================= | |
| 39 | + | |
| 40 | +This is a list of known issues with text appearance streams and things | |
| 41 | +we might do about it. | |
| 42 | + | |
| 43 | +* For variable text, the spec says to pull any resources from /DR that | |
| 44 | + are referenced in /DA but if the resource dictionary already has | |
| 45 | + that resource, just use the one that's there. The current code looks | |
| 46 | + only for /Tf and adds it if needed. We might want to instead merge | |
| 47 | + /DR with resources and then remove anything that's unreferenced. We | |
| 48 | + have all the code required for that in ResourceFinder except | |
| 49 | + TfFinder also gets the font size, which ResourceFinder doesn't do. | |
| 50 | + | |
| 51 | +* There are things we are missing because we don't look at font | |
| 52 | + metrics. The code from TextBuilder (work) has almost everything in | |
| 53 | + it that is required. Once we have knowledge of character widths, we | |
| 54 | + can support quadding and multiline text fields (/Ff 4096), and we | |
| 55 | + can potentially squeeze text to fit into a field. For multiline, | |
| 56 | + first squeeze vertically down to the font height, then squeeze | |
| 57 | + horizontally with Tz. For single line, squeeze horizontally with Tz. | |
| 58 | + If we use Tz, issue a warning. | |
| 59 | + | |
| 60 | +* When mapping characters to widths, we will need to care about | |
| 61 | + character encoding. For built-in fonts, we can create a map from | |
| 62 | + Unicode code point to width and then go from the font's encoding to | |
| 63 | + unicode to the width. Get rid of "ugly switch statements" in | |
| 64 | + QUtil.cc and replace with static map initializers. See | |
| 65 | + misc/character-encoding/ (not on github) and font metric information | |
| 66 | + for the 14 standard fonts in my local pdf-spec directory. | |
| 67 | + | |
| 37 | 68 | Fuzz Errors |
| 38 | 69 | =========== |
| 39 | 70 | ... | ... |