Description
1st version, only read global data and
dump the text as it is.
It seems very unlikely technically
feasible to convert a text window to SVG.
Problem areas:
• Leading whitespace –preserve.
• Empty lines –ditto preserve.
• wrap –improper for every text element.
• Format positions are indexed, and must be
calculated from surrounding text.
Unfortunately, this will rule out every
composite window, based on text.
Tags are stored as styles, the application
is not as simple as that, however. First this
tagconfigure function is called before there is
any text
added. And each tag may shift the baseline for
a given line. Using logical dimensions –
based on index doesn't help either; they are not
the same anyway.
A full dump of text-to-SVG means to reimplement
the text window –so to say.
Not worth it, leave a simple version without any
applied styles.
Conserve the tags inside the text window;
at least to the possible amount.
get all the used tags.
Parse each line separately and look up
what tag is used inside this line, then
set the linespace for this line to the highest
linespace used in this line. Proceed further
for the next text item.
It doesn’t seem tspan supports class
hence the tag information will be lost
text must be disassembled in a per-line
fashion, except where there is no tag at all.
The given code cannot deal with overlapping
tags. Only a single tag element is assumed.
The results from overlapping tags are undefined.
Walking the tags: preserving spaces and margins
inside embedded tags should be possible, too.
A left margin and right/center alignment could be
mapped on dx similar rmargin on a post-dx value,
generated for the following tspan element.
Tags with background are preserved, but...
The rectangle is being placed under the
text element.
Background for single line tags span the entire
window width.
lmargin1 is being used to align text, but
not the background rectangle. Do not
mix rectangle and lmargin1!