[Draw+Writer] Pasted graphic object visually different from original

I first design a flowchart in Draw with boxes and connectors. Boxes are layed out so that the general aspect is appealing, the general structure can be easily apprehended and connector crossings are minimised. However automatic connector routing sometimes makes them cross boxes or display contorted paths. In this case, I manually force a different path, using the handles that appear when you select a connector. When I’m satisfied with the design, the file is saved (but this step is not relevant for the following issue).

The flowchart is copied into the clipboard.

I switch to Writer where the document gives explanations on the intended structure. The flowchart is pasted near this explanation and ends up as a graphical frame with anchor and wrap properties. Unfortunately, the connectors follow very often paths different from what is shown in Draw (whether they were automatically routed or manually forced is not relevant, both kinds may be affected).

It looks like Writer recomputes connector routing instead of blindly accepting what was painfully tuned in Draw.

Is there a way to force Writer to take passively the pasted vector graphics?

Note: I had a try with “Paste special …” for alternate formats. Bitmap format is not acceptable because it gives a blurred and pixellised picture on high-resolution printer. The GDI Metafile format seems to display accurately the pasted graphics, but I’d prefer a native LO solution. There is also a Draw 8 format creating an OLE object which offers fewer layout possibilities than simple graphics (or at least it is more tricky and tedious because it looks like it is a mere rectangular area).

Any hint is welcome.

This is old bug fdo#37968 (AOO#108997 which contains a good screenshot showing the problem) and there are several related aspects to this problem as show by some of the bugs in the list for “connector”. The GDI Metafile format is a recommended workaround.

Thanks, but I try to avoid as much as possible Microsoft-based solutions (when you switch to open software, it is a full philosophy :wink: ).

I experience today a strange LO behaviour. The graphics in my Writer document was temporarily saved as ‘Draw format’. After I read your answer, I opened my Draw and Writer files. The flowchart was still visually as I fixed it yesterday. I copied it and pasted it in the Writer document as ‘GDI Metafile’. To my surprise, the problem connector was routed totally astray. It was also the same in ‘bitmap format’. I had to do a “dummy” edition in Draw to get a correct GDI pasted graphics. Is there a logical explanation for this?

Also, lines in GDI are not as thin as in Draw format, which leads to a non-homogeneous look in the Writer document. Is there any hope to see this bug fixed in a decent future so that standard paste can be used?

@ajlittoz, I completely agree. Unfortunately though, until either: (a) DDE/OLE is replaced with something more like an embedded link method with presentation (refer my answer on OLE here); (b) SVG support improves; (c) ODF is altered to base graphics on SVG; we have a serious shortcoming in this area. I do not believe any of these are easy fixes we will see any time soon. The short-term fix will likely be addressing the indicated bug, although how difficult it is to fix and when this will happen is unclear.

@oweng: your OLE answer is very interesting. For my information: does pasting reduce to OLE insertion? In my case, I want an embedded graphics, so that the relation between the ODG and ODT is broken, i.e. the ODT is released in a defined state (version) and work on the ODG can go on independently without automatically updating the ODT.

@ajlittoz, using either Paste or Paste Special… cuts the link between the files. Paste inserts a draw:g element in the XML of the ODG and the “Drawing format” is identical to plain Paste. “Draw 8” inserts a draw:frame element enclosing a draw:object and draw:image child element pair. “GDI Metafile” inserts a draw:frame element enclosing a draw:image (SVM) type child element while “Bitmap” inserts a draw:frame element enclosing a draw:image (PNG) type child element.