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

Reply via email to