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