Daddy Needs an Open Vector Graphics File Format
November 10, 2006
Back in May of this year, Mark Pilgrim made waves in the Mac community when he announced that he had abandoned the Mac platform in favor of Linux. The reason he gave was that he no longer wanted to have all of his data locked up in proprietary, not publicly documented file formats. He wants to make sure that all of his data is stored in open standard file formats that he will be able to access forever into the future, and have a choice of what software to use to access it. Some responded to this by pointing out that he could simply switch to Mac applications that support open standards, and that switching platforms completely is overkill.
This got me thinking, and inspired me to do the same. No, not to switch away from the Mac platform, but to convert as much of my data as I could to open file formats. I have over ten years worth of documents stored on my machine, some of which are only readable by a single software product. And some of these products are at the end of their life, never to have another release again.
One such program is AppleWorks. I started using AppleWorks extensively about ten years ago (though back then it was called ClarisWorks), using it to create most of my text and graphics documents. Back then, it was an amazing program. Heck, in some ways it's still an amazing program. But it seriously started to show its age when Apple introduced Mac OS X. Even though they updated AppleWorks to be a fully native Mac OS X application, it never quite felt at home on the platform. And, of course, nothing else in the world can read AppleWorks documents. So it's definitely time for a change.
So, over the last several months, I've been slowly converting my AppleWorks documents to other formats. AppleWorks supports several types of documents: word processing, painting, drawing, database, and presentation. The first three of these are the types that I've primarily used it for. Finding another format for painting documents is easy, since AppleWorks can save to a number of other raster formats, and it's also easy to just copy and paste the finished painting into a program such as GraphicConverter and have access to even more formats. In fact, this is what I've generally done anyway. So I don't actually have any AppleWorks painting documents, as they've all been converted to .gif or .png files long ago.
By far, most of my AppleWorks files are word processing documents. So for these documents I needed to find a good, open styled text format. I had originally thought that the OpenDocument family of formats would be the holy grail of data interoperability. The OpenDocument formats were designed to be open standard replacements for Microsoft Office file formats, allowing office software, both open source and proprietary, from many different software vendors to be able to share data freely, and offer users real freedom of choice in office software. The OpenDocument formats were originally based on the native file formats of the OpenOffice.org office suite, but are now supported by other software packages as well, at least in theory.
So, at least for word processing documents, I figured that I would convert all of my AppleWorks documents to the OpenDocument Text format, by exporting them to RTF, importing them into NeoOffice, and saving them back out as .odt files. As it turns out, most of my word processing documents are simple enough that RTF itself is a good enough format, so for those I just stopped there. I can use Mac OS X's built in TextEdit program to edit them just fine. I only ended up converting a handful of the more complex documents to the .odt format.
This just leaves the AppleWorks drawing documents. And that's where it gets interesting.
As far as I can tell, there seem to be only two open standard vector graphics file formats: the OpenDocument Graphics format (.odg), and the Scalable Vector Graphics format (SVG). So I went looking for decent Mac graphics programs that could edit either of these formats, so I could settle on both a format that was likely to be widely supported in the future, and an application that was fully featured and very usable. The programs I tried were:
![[Circles Compared]](http://www.doodpants.org/karlvonl/blog/Images/Circles.png)
AppleWorks jagged circle vs. WouldjaDraw smoothed circle.
First I tried NeoOffice, with the OpenDocument Graphics format. As I said, I figured that the OpenDocument format was the best bet for long term accessibility. Unfortunately, the OpenOffice.org Drawing component fails on both the aesthetics and usability counts. Apparently graphics isn't the developers' forte. Or perhaps it was modeled after MS PowerPoint, since OpenOffice.org is basically a clone of MS Office. But whatever the reason, this thing is ugly as sin, and a pain to use.
First let's talk about its aesthetics. Smooth graphics? Not there, just like in AppleWorks. So that makes it unsuitable for on-screen graphics work, but still fine for documents that are meant to be printed. Which isn't much of a consolation, because I don't do much more printed graphics work than on-screen.
Then there's the ease of use thing. Doing something simple like creating a text object, moving it around, and then going back into it to edit the text was a frustrating experience. First of all, to change the font and size of a selected text object requires a trip to the Format->Character... dialog. The controls you need aren't front and center, in a handy palette or toolbar. The Drawing component of OpenOffice.org doesn't think it's a graphics editor; it thinks it's a word processor that happens to allow inserting graphical objects on the page. Second of all, I never did figure out a consistent pattern of clicks that would reliably cause it to put a cursor back into the text object for re-editing. I tried a single click, double click, triple click, click-pause-click, and preceding all of the above with a click or double click outside of the object to deselect it first. Ok, my experimentation wasn't really as exhaustive and meticulous as I make it sound. It was more like wildly clicking all over the place until the text object became editable, which seemingly occurred after a different pattern of clicks each time. This was enough to make me decide that this tool is basically unusable, and move on.
Next up was Inkscape. As I said above, this is an open source, cross-platform application that runs under X11. X11 apps tend to be very un-Mac-like, and open source projects tend to be very poor in the aesthetics and usability departments. So I was expecting an experience basically like the GIMP.
Boy, was I pleasantly surprised! Inkscape is a very powerful graphics program, with tons of features. I had little trouble finding the tools I needed when I needed them. It breaks convention with other graphics programs in terms of some of the UI controls, but in general if I took the time to look for what I needed, it was always right there, in a toolbar. And a lot of the UI was innovative, in a good way. The dialog box for aligning and distributing objects, for example, is top-notch, due to the sheer number of options it gives you, presented with intuitive icons.
![[Circles Compared]](http://www.doodpants.org/karlvonl/blog/Images/InkscapeAlignDialog.png)
Inkscape's "Align and Distribute" dialog.
Of course, being an X11 app, it looks and behaves like one. The font in its UI is tiny; it has a menu bar embedded in its window; clicking its icon in the Dock doesn't bring it to the front, but clicking the X11 icon does; and it uses Control instead of Command for all of its keyboard shortcuts.
So on to the main question: what about the file formats? Inkscape saves to SVG. By default, it saves to "Inkscape SVG" which has its own custom additions, to keep track of whatever metadata Inkscape needs. But it has an option to save to plain SVG as well.
Now, I had my doubts about SVG. Is it well specified enough to avoid different programs rendering the same document in different ways? Is SVG really a good working format, or was it indended merely as a final output format for web graphics?
It turns out that my fears were well-founded. I created a simple document, consisting of a rectangle, and two text objects. One text object used the font Bitstream Vera Sans, and the other used Helvetica. Bitstream Vera Sans is the default font Inkscape uses for text objects, and Helvetica seemed a good choice as a basic, reliable Mac font. I saved this to an SVG file. When I opened it in Camino and Firefox, the picture was mostly correct, but for some reason the Bitstream text showed up as italic, and the Helvetica text showed up as bold. Then I opened up the same document in Lineform. This was much worse: the Helvetica text didn't show up at all! Besides that, Bitstream text was tiny, and the rectangle was in completely the wrong place. So this lead me to conclude that SVG is not as portable as it needs to be in order to be my long term vector graphics file format of choice.
But wait, Inkscape can save to .odg as well! Perhaps I can choose that as my file format, while using Inkscape instead of NeoOffice as my editor? Unfortunately, no. I saved my test graphic to .odg format, and then opened it in NeoOffice. And it did not render correctly. First, the objecs were all grouped into a single object. This was easily fixed with the Ungroup command. Second, and more importantly, the text objects were invisible! This was easily fixed by changing their stroke setting, but come on now. Finally, I tried saving a document in landscape orientation, but it was in portrait orientation when opened in OpenOffice. This was easily fixed... ah screw it. If I have to fix everything after opening the file in another program, then it's not really portable.
So my next question was, will the .odg file show up properly when I re-open it in Inkscape? Guess what? It turns out that Inkscape can't read .odg files; it can only write them! Trying to open it yielded an error, using both the standard Open command and the Import command. So, using Inkscape for .odg files is a one way trip, and all subsequent edits would have to be done with OpenOffice, after fixing everything. So it's a no go.
Finally, there's Lineform. This $79.95 application supports "SVG for full document import/export" according to the web page, and has a demo version to boot. Well, I already told you what happened when I tried importing an SVG file saved by Inkscape into Lineform. But maybe the SVG that Lineform saves to is somehow more compatible, or more compliant with the SVG specification, and will be properly rendered in other programs? Well, it turns out that saving to SVG is one of the features that is disabled in the demo version. So I don't even get to evaluate the one feature that I'm considering the program for in the first place. I don't want to spend the money just to evaluate a feature, especially since I have reason to believe that it won't work properly anyway.
So, where do I stand now? Well, there are only two open standard vector graphic file formats that I know of, and neither of them are portable enough to rely on for long term maintainability. Are there any other formats I'm not aware of? Is the disparity between Inkscape's and OpenOffice.org's understanding of the .odg format the fault of the former or the latter, and if the former, is there a better tool than NeoOffice that can write (and read) it properly? I don't know. In the mean time, I'm redoing all of my AppleWorks drawing documents in WouldjaDraw, just so that I am no longer reliant on AppleWorks for accessing old documents. Unfortunately, I'm just saving these documents to WouldjaDraw's own proprietary file format, and WouldjaDraw doesn't export to any other vector graphics formats (unless you count PDF). So if I do eventually find a good open format to switch to, I'll have to redo these documents again.
And then there's Corel Painter. I have a bunch of documents in Painter's format, and these are the more complex ones, some of which took me hours to create, and some of which rely on Painter's more advanced features, which are unlikely to exist in any open source graphics program more lightweight and user friendly than the GIMP. So these may be forever locked up in Painter's format. However, Painter can export to the Photoshop file format, and this format might be enough of a de facto standard that lots of other programs can import it, so at least I may have a means of converting my Painter documents to other formats at some point in the future if I need to.
This got me thinking, and inspired me to do the same. No, not to switch away from the Mac platform, but to convert as much of my data as I could to open file formats. I have over ten years worth of documents stored on my machine, some of which are only readable by a single software product. And some of these products are at the end of their life, never to have another release again.
One such program is AppleWorks. I started using AppleWorks extensively about ten years ago (though back then it was called ClarisWorks), using it to create most of my text and graphics documents. Back then, it was an amazing program. Heck, in some ways it's still an amazing program. But it seriously started to show its age when Apple introduced Mac OS X. Even though they updated AppleWorks to be a fully native Mac OS X application, it never quite felt at home on the platform. And, of course, nothing else in the world can read AppleWorks documents. So it's definitely time for a change.
So, over the last several months, I've been slowly converting my AppleWorks documents to other formats. AppleWorks supports several types of documents: word processing, painting, drawing, database, and presentation. The first three of these are the types that I've primarily used it for. Finding another format for painting documents is easy, since AppleWorks can save to a number of other raster formats, and it's also easy to just copy and paste the finished painting into a program such as GraphicConverter and have access to even more formats. In fact, this is what I've generally done anyway. So I don't actually have any AppleWorks painting documents, as they've all been converted to .gif or .png files long ago.
By far, most of my AppleWorks files are word processing documents. So for these documents I needed to find a good, open styled text format. I had originally thought that the OpenDocument family of formats would be the holy grail of data interoperability. The OpenDocument formats were designed to be open standard replacements for Microsoft Office file formats, allowing office software, both open source and proprietary, from many different software vendors to be able to share data freely, and offer users real freedom of choice in office software. The OpenDocument formats were originally based on the native file formats of the OpenOffice.org office suite, but are now supported by other software packages as well, at least in theory.
So, at least for word processing documents, I figured that I would convert all of my AppleWorks documents to the OpenDocument Text format, by exporting them to RTF, importing them into NeoOffice, and saving them back out as .odt files. As it turns out, most of my word processing documents are simple enough that RTF itself is a good enough format, so for those I just stopped there. I can use Mac OS X's built in TextEdit program to edit them just fine. I only ended up converting a handful of the more complex documents to the .odt format.
This just leaves the AppleWorks drawing documents. And that's where it gets interesting.
As far as I can tell, there seem to be only two open standard vector graphics file formats: the OpenDocument Graphics format (.odg), and the Scalable Vector Graphics format (SVG). So I went looking for decent Mac graphics programs that could edit either of these formats, so I could settle on both a format that was likely to be widely supported in the future, and an application that was fully featured and very usable. The programs I tried were:
- The aforementioned NeoOffice, which of course has a Drawing component that saves to .odg by default.
- Inkscape, an open source, cross-platform vector graphics program that is quite fully featured. There is a Mac version, which requires X11 to run. Inkscape supports both SVG and .odg file formats.
- Lineform, a recent release from the venerable Mac software house Freeverse. Lineform supports SVG.
![[Circles Compared]](http://www.doodpants.org/karlvonl/blog/Images/Circles.png)
AppleWorks jagged circle vs. WouldjaDraw smoothed circle.
First let's talk about its aesthetics. Smooth graphics? Not there, just like in AppleWorks. So that makes it unsuitable for on-screen graphics work, but still fine for documents that are meant to be printed. Which isn't much of a consolation, because I don't do much more printed graphics work than on-screen.
Then there's the ease of use thing. Doing something simple like creating a text object, moving it around, and then going back into it to edit the text was a frustrating experience. First of all, to change the font and size of a selected text object requires a trip to the Format->Character... dialog. The controls you need aren't front and center, in a handy palette or toolbar. The Drawing component of OpenOffice.org doesn't think it's a graphics editor; it thinks it's a word processor that happens to allow inserting graphical objects on the page. Second of all, I never did figure out a consistent pattern of clicks that would reliably cause it to put a cursor back into the text object for re-editing. I tried a single click, double click, triple click, click-pause-click, and preceding all of the above with a click or double click outside of the object to deselect it first. Ok, my experimentation wasn't really as exhaustive and meticulous as I make it sound. It was more like wildly clicking all over the place until the text object became editable, which seemingly occurred after a different pattern of clicks each time. This was enough to make me decide that this tool is basically unusable, and move on.
Next up was Inkscape. As I said above, this is an open source, cross-platform application that runs under X11. X11 apps tend to be very un-Mac-like, and open source projects tend to be very poor in the aesthetics and usability departments. So I was expecting an experience basically like the GIMP.
Boy, was I pleasantly surprised! Inkscape is a very powerful graphics program, with tons of features. I had little trouble finding the tools I needed when I needed them. It breaks convention with other graphics programs in terms of some of the UI controls, but in general if I took the time to look for what I needed, it was always right there, in a toolbar. And a lot of the UI was innovative, in a good way. The dialog box for aligning and distributing objects, for example, is top-notch, due to the sheer number of options it gives you, presented with intuitive icons.
![[Circles Compared]](http://www.doodpants.org/karlvonl/blog/Images/InkscapeAlignDialog.png)
Inkscape's "Align and Distribute" dialog.
Of course, being an X11 app, it looks and behaves like one. The font in its UI is tiny; it has a menu bar embedded in its window; clicking its icon in the Dock doesn't bring it to the front, but clicking the X11 icon does; and it uses Control instead of Command for all of its keyboard shortcuts.
So on to the main question: what about the file formats? Inkscape saves to SVG. By default, it saves to "Inkscape SVG" which has its own custom additions, to keep track of whatever metadata Inkscape needs. But it has an option to save to plain SVG as well.
Now, I had my doubts about SVG. Is it well specified enough to avoid different programs rendering the same document in different ways? Is SVG really a good working format, or was it indended merely as a final output format for web graphics?
It turns out that my fears were well-founded. I created a simple document, consisting of a rectangle, and two text objects. One text object used the font Bitstream Vera Sans, and the other used Helvetica. Bitstream Vera Sans is the default font Inkscape uses for text objects, and Helvetica seemed a good choice as a basic, reliable Mac font. I saved this to an SVG file. When I opened it in Camino and Firefox, the picture was mostly correct, but for some reason the Bitstream text showed up as italic, and the Helvetica text showed up as bold. Then I opened up the same document in Lineform. This was much worse: the Helvetica text didn't show up at all! Besides that, Bitstream text was tiny, and the rectangle was in completely the wrong place. So this lead me to conclude that SVG is not as portable as it needs to be in order to be my long term vector graphics file format of choice.
But wait, Inkscape can save to .odg as well! Perhaps I can choose that as my file format, while using Inkscape instead of NeoOffice as my editor? Unfortunately, no. I saved my test graphic to .odg format, and then opened it in NeoOffice. And it did not render correctly. First, the objecs were all grouped into a single object. This was easily fixed with the Ungroup command. Second, and more importantly, the text objects were invisible! This was easily fixed by changing their stroke setting, but come on now. Finally, I tried saving a document in landscape orientation, but it was in portrait orientation when opened in OpenOffice. This was easily fixed... ah screw it. If I have to fix everything after opening the file in another program, then it's not really portable.
So my next question was, will the .odg file show up properly when I re-open it in Inkscape? Guess what? It turns out that Inkscape can't read .odg files; it can only write them! Trying to open it yielded an error, using both the standard Open command and the Import command. So, using Inkscape for .odg files is a one way trip, and all subsequent edits would have to be done with OpenOffice, after fixing everything. So it's a no go.
Finally, there's Lineform. This $79.95 application supports "SVG for full document import/export" according to the web page, and has a demo version to boot. Well, I already told you what happened when I tried importing an SVG file saved by Inkscape into Lineform. But maybe the SVG that Lineform saves to is somehow more compatible, or more compliant with the SVG specification, and will be properly rendered in other programs? Well, it turns out that saving to SVG is one of the features that is disabled in the demo version. So I don't even get to evaluate the one feature that I'm considering the program for in the first place. I don't want to spend the money just to evaluate a feature, especially since I have reason to believe that it won't work properly anyway.
So, where do I stand now? Well, there are only two open standard vector graphic file formats that I know of, and neither of them are portable enough to rely on for long term maintainability. Are there any other formats I'm not aware of? Is the disparity between Inkscape's and OpenOffice.org's understanding of the .odg format the fault of the former or the latter, and if the former, is there a better tool than NeoOffice that can write (and read) it properly? I don't know. In the mean time, I'm redoing all of my AppleWorks drawing documents in WouldjaDraw, just so that I am no longer reliant on AppleWorks for accessing old documents. Unfortunately, I'm just saving these documents to WouldjaDraw's own proprietary file format, and WouldjaDraw doesn't export to any other vector graphics formats (unless you count PDF). So if I do eventually find a good open format to switch to, I'll have to redo these documents again.
And then there's Corel Painter. I have a bunch of documents in Painter's format, and these are the more complex ones, some of which took me hours to create, and some of which rely on Painter's more advanced features, which are unlikely to exist in any open source graphics program more lightweight and user friendly than the GIMP. So these may be forever locked up in Painter's format. However, Painter can export to the Photoshop file format, and this format might be enough of a de facto standard that lots of other programs can import it, so at least I may have a means of converting my Painter documents to other formats at some point in the future if I need to.



5 Comments:
Firefox is still improving, the step towards version 3 will involve a bigger step forward in SVG than the step from version 1.5 to 2.
You can try out the nightly builds to see the progress, most are surprisingly stable for nightlies.
When you limit yourself to regular browsers doing native SVG in release versions (that's a lot of constraints) Opera 9 is the top of the list at the moment.
If a (way!) broader scope also has your interest take a look at http://svg.startpagina.nl
November 11, 2006 9:13 AM
Interesting. I tried opening my test Inkscape SVG file in Opera, and it seemed to render perfectly. So I guess the fault lies with Firefox and Lineform, not Inkscape. In addition, some of the comments in this Red Sweater Blog post lead me to believe that SVG has more mindshare than I thought, and is probably poised to become the de facto standard vector graphics format in the future. So perhaps Inkscape and the SVG format is the way to go after all.
I must ponder this. This means abandoning WouldjaDraw, which I really like, and of course I'd have to redo all of my documents again with Inkscape. Or maybe I can ask the developers of WouldjaDraw to add SVG support.
November 12, 2006 10:00 AM
Certainly, SVG is the way to go with vector graphics these days. It's widely used in Wikipedia, for clipart, maps, art, and in myriads other ways. Inkscape is riding this wave and is doing quite well. It does not support all of SVG yet, but at least the SVG Inkscape creates is always valid (with the only exception of flowed text, as explained in their FAQ; but it's easy to work around that). When in doubt, check your file in Apache Batik which is the reference renderer. Opera also renders SVG quite well. Firefox lags behind on that but is OK for simple SVG graphics.
November 13, 2006 2:04 PM
Another open standard is the Xara format. Xara is very powerful and extremely easy to use (and open-source for Linux). Having said that, we recently moved from using Xara to SVG/Inkscape because the Xara format is not widely supported. Why on earth did they create the odg standard for OpenOffice, they should have adopted the SVG standard instead, makes no sense to have an additional standard!
July 04, 2007 8:36 AM
You fellows (and ladies) seem smarter than average : I'm having a problem that I would like to ask if you can help me overcome. For my new start-up business, I need to have transparent background on text that I create with GIMP 2.6.3. I can NOT seem to make it happen - can I get help? All the fonts I save (then place into pagemaker) have a WHITE text-box-style background and I need just the outline black letters, transparent background) Anyone? Anyone? Bueller? Bueller? Thanks a million. electricwillman@gmail.com
December 19, 2008 11:39 AM
Post a Comment
<< Home