pdf-issues
pdf-issues copied to clipboard
12.5.6.13 (Ink annotations): functional gap between InkList and Path entries
Older InkList
entry (Table 185 — Additional entries specific to an ink annotation) defines an array of separate subpaths ("An array of n arrays, each representing a stroked path"), whilst newer Path
entry defines a single subpath ("An array of n arrays, each supplying the operands for a path building operator (m, l or c)").
PROPOSAL
Path
entry syntax should be augmented to support intermediate moveto
operations (beyond the first one currently supported) in order to allow separate subpaths, like the corresponding InkList
entry.
Since operand arrays associated to moveto
and lineto
operators are indistinguishable, in order to fit multiple separate subpaths it would be necessary to add a new unambiguous syntactic delimiter (which would be incompatible with current definition), for example the null
value:
[
% subpath 1
[10 0] % moveto
[10 10] % lineto
[35 15] % lineto
null % end subpath
% subpath 2
[80 100] % moveto
[50 40] % lineto
]
or, alternatively, to add a grouping level, encapsulating each subpath in a separate array:
[
% subpath 1
[
[10 0] % moveto
[10 10] % lineto
[35 15] % lineto
]
% subpath 2
[
[80 100] % moveto
[50 40] % lineto
]
]