Import of curved connectors from OOXML
Regina Henschel
rb.henschel at t-online.de
Fri Nov 3 12:54:05 UTC 2023
Hi all,
I'm still working on import of the "drawing canvas" of docx. I have
stumbled across problems with curved connectors.
Curved connectors in OOXML use different Bézier-curve segments than
LibreOffice. For example, a curvedConnector3 has two Bèzier-curve
segments with the handle on their common anchor point, whereas
LibreOffice has one Bézier-curve segment with the handle outside the
curve. These ways of creating a curve are basically incompatible.
The current import of "drawing canvas" uses the VML fallback. That
results in a custom shape, e.g. of type "mso-spt39" (=
msosptCurvedConnector4). It has the curve as it is shaped in Word and
its handles, but is no longer a connector, but a custom shape.
It would be possible, to set the curve as "user defined" EdgeTrackPath
to a connector, but for that the connector needs to be disconnected and
handles would not be usable.
I could try to approximate the OOXML curve by defining ersatz adjustment
values. What criteria should be used for such an approximation? Anyway,
it is mathematically complex, especially for cases with two or three
handles.
Impress does not attempt to approximate, but imports curved connectors
to the default curved connector of LibreOffice, losing all adjustment
values.
What to do?
Kind regards,
Regina
More information about the LibreOffice
mailing list