Могу ли я сделать каждую группу в этом файле SVG отдельным файлом SVG?

У меня есть огромный файл SVG, который я заполнил всеми символами шрифта. Символов очень много, и вручную копировать каждый из них в отдельный файл займет целую вечность. Все пути каждого символа объединены в группу, поэтому, если бы что-то могло автоматически поместить каждую группу в отдельный файл SVG, это решило бы мою проблему. Любые идеи? Спасибо!

Возможность сделать это во многом зависит от приложения, используемого для редактирования файлов svg. Вы не указали ни одного приложения в своем вопросе или тегах.
Ой, извини. В моем распоряжении есть Illustrator и Inkscape.

Ответы (4)

Вот: http://www.tbyrne.org/export-illustrator-layers-to-svg-files

Поддерживаемые форматы: PNG8, PNG24, PDF, EPS и SVG.

Вы можете выбрать, хотите ли вы экспортировать все монтажные области в документе с отображением видимых в данный момент слоев, или вы хотите экспортировать файлы для каждого из слоев в документе на текущей активной монтажной области, или если вы хотите экспортировать комбинацию всех артбордов, умноженных на все слои.

Файлы именуются на основе имени их слоя. Он экспортирует только те слои, имя которых было изменено со значения по умолчанию «Слой 1», «Слой 2» или «Монтажная область 1», «Монтажная область 2» и т. д. Я удалил эту функцию, но мог бы добавить ее обратно в качестве настраиваемой опции.

Если вы поместите знак минус (-) перед именем слоя или именем монтажной области, он пропустит этот слой или монтажную область. (Полезно, когда вы больше не решаете, что вам нравится конкретный макет, но не хотите удалять его из основного документа Illustrator.)

Только для слоев: если поставить знак плюс (+) перед именем слоя, этот слой всегда будет виден. Полезно, если вы хотите, чтобы слой всегда отображался на фоне каждого экспортируемого изображения.

Он хранит свои настройки в невидимом, непечатаемом слое с именем «nyt_exporter_info».

Есть опция прозрачности.

Он имеет возможность встраивания связанных изображений (только EPS и SVG).

Есть возможность встраивания шрифтов (только EPS).

Один из вариантов — использовать набор данных, рассматривая каждый глиф как запись. см., например: ( http://vector.tutsplus.com/tutorials/tools-tips/quick-tip-data-driven-graphics-using-illustrators-variables-panel/ ), который является приличным изложением, где автор делает один документ с переменными и набором данных и создает 100 уникальных визитных карточек.


Второй вариант — заметить, что файлы SVG являются текстовыми файлами и могут редактироваться текстовым редактором. То, как именно вы разбиваете файл, зависит от того, как он был создан и сохранен. Я сделал быстрый файл svg, набрав глиф «a», а затем отдельно глиф «b», расширил их, а затем сохранил как svg. Результат ниже. Обратите внимание на два <g>«поля».

<?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>

Если я удалю весь <g></g>раздел и сохраню копию, вернусь, а затем удалю другой раздел и сохраню вторую копию, каждый из двух файлов будет одним глифом, сохраняя свое исходное положение в рамке документа.

Очевидно, что это довольно громоздко, но поддается программному редактированию текста (vbscript, php, applescript, grep, c и т. д.).


Недавно я попытался разместить 26 глифов на 26 артбордах в Illustrator и экспортировать их отдельно. Оказывается, в Illustrator это невозможно с SVG ; он запоминает только активный артборд, но сохраняет все искусство.

Итак, я просто наложил все глифы друг на друга, скрыл все, кроме одного, и экспортировал. Изменена видимость слоя и повторяется.

Я полагаю, что сценарий Illustrator не будет здесь слишком сложным. Наложите их все на один артборд, затем запустите скрипт, который 1) скроет все объекты в слое, 2) сделает видимой первую группу, 3) экспортирует как «1.svg», 4) скроет активный объект, а затем зациклит это для столько объектов, сколько у вас есть.

Если вы работаете на Mac, в Sketch это должно быть очень просто . Откройте SVG, слева будет список ваших групп. Выберите группу и в правом нижнем углу нажмите Make Exportableи выберите SVG. Повторите для каждой группы. (доступна бесплатная пробная версия).