0

I use two key features in my schematics:

1) Flow-into-frame (Alt-W) to get text wrap within a rectangle

2) Connectors

When I save the file, an SVG file is created. When I open it, all the text is detached from their rectangles and randomly located. The connector endpoints also seem to be randomly positioned. Every time I re-open my schematic I go fixing everything up.

I then tried explicitly saving as Inkscape SVG (after fixing everything up). When I re-opened the file, all seemed uncorrupted.

Q1) Is the default SVG format the plain SVG, i.e., when saving, either with File->Save or by using ctrl-S? I'm wondering if that explains the corrupted schematic when I re-opened my file.

Q2) Can I rely on Inkscape SVG to preserve the above two features that I use?

I am using Inkscape 0.48, and being in a locked down corporate environment, upgrading is not very practical.

I've posted this to the inkscape forum and StackExchange.

  • "Inkscape SVG" contains additional metadata and is the format you want. There doesn't seem to be an advantage anymore to using plain SVG. I've noticed using connectors was wonky in older versions of Inkscape in the past. To be honest, it's unreliable enough still that I tend to use Libreoffice Draw or Visio instead for these types of things. – Scribblemacher Nov 9 '16 at 2:55
  • Thanks, prkos. I understand that not all Inkscape features are part of the standard. I was just wondering if the reason for my problem is that the default SVG is plain SVG, i.e., when using ctrl-S. If so, there should probably be a warning. – user36800 Nov 9 '16 at 4:13
  • Furthermore, while it seems for the moment that saving as Inkscape SVG preserves the two features I am using, I'm not entirely sure. This is because I seem to recall not seeing such wholesale loss of positioning information when saving in the past. Maybe the reason is that, in the past, the format used was Inkscape SVG for some reason. Which is why I was curious as to the default behaviour for saving (ctrl-S). – user36800 Nov 9 '16 at 4:14
  • I looked at the svg file using a text editor, and while I saw some differences, I'm not sure how to tell whether the file was saved using plain SVG or Inkscape SVG. – user36800 Nov 9 '16 at 4:14
  • Oops, sorry, Scribblemacher. I addressed my 1st comment erroneously. – user36800 Nov 9 '16 at 4:28
1

SVG connectors and text flows are not standard SVG

Both SVG connectors and flow-into-frame are actually not supported by the SVG specification. Inkscape supports these features by storing additional information that it needs in the inkscape namespace in the SVG file.

The Inkscape SVG file format will support these Inkscape's extensions to the SVG language, assuming you are viewing the SVG in Inkscape or a program that understands those extensions. Plain SVG removes that special namespaced data, which is why you are seeing a formatting loss.

Responses to your questions

Q1) Is the default SVG format the plain SVG, i.e., when saving, either with File->Save or by using ctrl-S? I'm wondering if that explains the corrupted schematic when I re-opened my file.

The default format is Inkscape SVG. You must explicitly save as a plain SVG. If you save as a plain SVG, make some changes, and then press Ctrl + S, it will be saved as an Inkscape SVG, not plain.

Plain SVG generated by Inkscape is generally not useful. The primary use-case for it is if you need to process an SVG file by another application that chokes on all the inkscape namespaced stuff. Since Inkscape SVG files do you namespaces to extend features, most XML applications shouldn't have issues and will just ignore the extraneous data.

Q2) Can I rely on Inkscape SVG to preserve the above two features that I use?

Yes and no. In my experience, connectors were unreliable in previous versions of Inkscape.

I'd recommend using normal paths instead of connectors and snapping them to objects. For text, I avoid flowing text like the plague and just use normal SVG text objects (which you can create by just clicking with the text tool instead of clicking and dragging). Text flows will explode if the SVG is used in a browser or Apache FOP.

If the diagram is very complicated, you can use Libreoffice Draw to create it, and then save it as an SVG file, then do whatever additional work (if any) is needed in Inkscape. Microsoft's Visio is another option.

Caution

While things like text flow are very useful, if you need to use the SVG file directly by another program, such as a web browser, there is a good chance it will explode and look crazy.

The most common way to deal with these programs are (1) export a PNG and use that instead, (2) Convert troublesome content (like flowed text) to paths, and (3) avoid using those features.

  • Thanks, Scribblemacher....I appreciate your thorough explanation. But I don't think my specific questions were clearly highlighted in my original post. I've enumerated them for clarity. Your explanation attempts to address Q2. However, now that I examine the "bad" diagram vs. the one that I fixed up & saved in Inkscape SVG, both contain "inkscape:". And even though I saved the latter in Inkscape SVG, some connector endpoints seem to be moved to the upper left corner. Something bad is still happening despite using Inkscape SVG, so that doesn't seem to be the solution. – user36800 Nov 9 '16 at 13:40
  • I would post an example, but the diagram corruption only happens with some connector ends, and I'm not sure what triggers it (and hence how to duplicate it). I can't post the diagram that I am currently working on. Aside, WRT Q1, it'd be nice to be able to tell what the default save format is using Ctrl-S. Not only when one saves a diagram built from scratch for the first time, but even after experimenting with changing save formats, or after opening a file that was saved in a particular format. Thanks! (P.S. I'm not interested in how the diagram looks in other apps) – user36800 Nov 9 '16 at 13:43
  • The default is most definitely Inkscape SVG. My suggestion is (unfortunately) to convert text flows to normal text and convert connectors to paths. Those will preserve fidelity at the cost of being able to edit things. As you've seen, Inkscape is hinky with the two features you are trying to use (especially connectors), and it's better to avoid them. Again, I usually go for LO Draw or Visio for these types of diagrams – Scribblemacher Nov 9 '16 at 14:19
  • Thanks....can you add that to your answer? It seems to answer the question. Ans to Q1: Default is Inkscape SVG (possibly except if opening a file that was saved with plain SVG?). If you know whether Inkscape remembers whether it opened a plain SVG file, and maintains that in the save, that'd be useful too. Ans to Q2: Even Inkscape SVG is no guarantee of preserving the work done with the two features in the OP. PS: One possible cause of errant connector endpoints is if they are not connected to a shape. I'm not sure yet what causes them to become disconnected (and this is just a guess anyway). – user36800 Nov 9 '16 at 15:12
  • I've expanded my answer. One reason you might see a disconnect is if you accidentally connected to the wrong object (for example, you connect to the text frame, not a rectangle). Like I said, I avoid connectors for the problems you are experiencing. – Scribblemacher Nov 9 '16 at 15:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.