Take the 2-minute tour ×
Graphic Design Stack Exchange is a question and answer site for Graphic Design professionals, students, and enthusiasts. It's 100% free, no registration required.

I have a huge SVG file that I filled with all the characters for a font. There are a lottt of characters and it'd take forever to manually copy each of them into its own file. Each character has all of its paths combined into a group, so if something could automatically put each group into its own SVG file, that would solve my problem. Any ideas? Thanks!

share|improve this question
    
Ability to do this would greatly depend upon the application being used to edit the svg files. You have not indicated any application in your question or tags. –  Scott Apr 25 '13 at 15:56
    
Oops sorry. I have Illustrator and Inkscape at my disposal. –  oxguy3 Apr 25 '13 at 15:58

3 Answers 3

One option is to use a data set, treating each glyph as a record. see for instance: ( http://vector.tutsplus.com/tutorials/tools-tips/quick-tip-data-driven-graphics-using-illustrators-variables-panel/ ) which is decent rundown where the author makes a single document with variables and a dataset and creates 100 unique business cards.


A second option is to notice that SVG files are text files and can be edited by a text editor. Exactly how you go about breaking the file up is dependent on how it was made and stored. I made a quick svg file by typing an 'a' glyph and then a 'b' glyph separately, expanded them, and then saved as svg. The result is below. Note the two <g> "fields."

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="612px" height="792px" viewBox="0 0 612 792" enable-background="new 0 0 612 792" xml:space="preserve">
<g>
    <path d="M104.219,114.458L103.379,117h-1.08l2.758-8.083h1.248l2.758,8.083h-1.115l-0.864-2.542H104.219z M106.881,113.642
        l-0.804-2.327c-0.18-0.527-0.3-1.007-0.419-1.475h-0.024c-0.12,0.468-0.24,0.972-0.408,1.463l-0.792,2.338H106.881z"/>
</g>
<g>
    <path d="M97.912,134.036c0.456-0.108,1.187-0.18,1.907-0.18c1.043,0,1.715,0.18,2.207,0.588c0.419,0.312,0.684,0.792,0.684,1.427
        c0,0.792-0.528,1.475-1.367,1.775v0.036c0.768,0.18,1.667,0.815,1.667,2.015c0,0.696-0.276,1.235-0.696,1.619
        c-0.552,0.516-1.463,0.755-2.782,0.755c-0.72,0-1.271-0.048-1.619-0.096V134.036z M98.955,137.347h0.947
        c1.091,0,1.739-0.588,1.739-1.367c0-0.936-0.708-1.319-1.763-1.319c-0.48,0-0.755,0.036-0.923,0.072V137.347z M98.955,141.208
        c0.216,0.036,0.503,0.048,0.875,0.048c1.079,0,2.075-0.396,2.075-1.571c0-1.091-0.947-1.559-2.087-1.559h-0.863V141.208z"/>
</g>
</svg>

If I remove one whole <g></g> section and save a copy, revert, then remove the other section and save a second copy, the two files will each be a single glyph, preserving their original placement in the document frame.

Obviously this is pretty cumbersome, but it is amenable programmatic text editing (vbscript, php, applescript, grep, c etc)


share|improve this answer

Here you go: http://www.tbyrne.org/export-illustrator-layers-to-svg-files

Supported formats are: PNG8, PNG24, PDF, EPS & SVG

You can choose whether you want to export all the artboards in the document with the currently visible layers showing, or if you want to export files for each of the layers in a document on the currently active artboard, or if you want to export a combination of all the artboards multiplied by all the layers.

Files are named based on their layer name. It only exports layers where their name has been changed from the default “Layer 1″, “Layer 2″ or “Artboard 1″, “Artboard 2″, etc. I removed this feature, but might add it back as a configurable option.

If you put a minus sign (-) in front of a layer name or artboard name, it will skip that layer or artboard. (Useful for when you no longer decide you like a particular mockup, but don’t want to delete it from the master Illustrator document.)

For layers only: If you put a plus sign (+) in front of a layer name, that layer will always be visible. Useful for if you want to have a layer that always appears in the background of each exported image.

It stores its settings in a nonvisible, nonprinting layer named “nyt_exporter_info”

It has an option for transparency.

It has an option for embedding linked imagery (EPS & SVG only).

It has an option for embedding fonts (EPS only).

share|improve this answer

I recently tried to put 26 glyphs on 26 artboards in Illustrator and export them separately. Turns out in Illustrator that's not possible with SVG; it only remembers the active artboard but keeps all of the art.

So, I just layered all of the glyphs on top of each other, hid all but one of them, and exported. Changed layer visibility and repeated.

I would imagine that an Illustrator script wouldn't be too hard here. Layer them all on one artboard, then run a script that would 1) hide all objects in the layer, 2) make the first group visible, 3) export as '1.svg', 4) hide active object, and then loop that for as many objects as you have.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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