I often want to use a third party logo or icon in one my OmniGraffle diagrams. To avoid any jaggies with scaling raster images, I prefer to use a vector image format. These are commonly SVG files.

Unfortunately, current versions of OmniGraffle have limited SVG import functionality. (This is a known issue, and OmniGroup are working on it.) A workflow I’ve found helpful in the interim, is to convert the SVG file(s) to EPS, and drag the resulting file into the document.

On macOS install librsvg, if it isn’t already. (It is a dependency of graphviz, so it may already be installed.)

brew install librsvg

The man page is very clear for other options, such as scaling or converting to other formats, but for this use case just convert to EPS:

rsvg-convert -f eps -o example.eps example.svg

To demonstrate, I grabbed the first example file I found online and wasn’t surprised to see that it does not import well into OmniGraffle. In this case some of the gradients are the wrong place. Converting the file first to EPS, and then importing that into OmniGraffle gives a much more workable image. The size is a bit smaller by default, but that is of no consequence for a vector drawing and can be easily scaled to the correct size.

Original SVG file
An example of Omnigraffle’s poor SVG import function
Imported SVG into OmniGraffle

An example of Omnigraffle’s poor SVG import function

Imported EPS into OmniGraffle