Это действительно важно для меня, поэтому я перестал плакать, потратил несколько часов и написал это решение:
- Скачать скрипты: https://github.com/JcBernack/IllustratorScripts/archive/master.zip
- Поместите папку «Fix SVG Layers» в стандартную папку сценариев Illustrator. Где это зависит от вашей установки и языка, мой находится по адресу:
C: \ Program Files \ Adobe \ Adobe Illustrator CS6 (64-разрядная версия) \ Presets \ de_DE \ Skripten
- Запустите Illustrator и загрузите SVG, где все фактические слои теперь являются группами внутри нового «Слоя 1».
- Перейдите в Файл-> Скрипты-> Исправить слои SVG-> FixSvgLayers
- Ура! Все группы теперь являются настоящими слоями, и «Слой 1» исчез навсегда.
Немного больше информации:
- «FixSvgLayers» преобразует все группы в «Слой 1» обратно в слои, перемещает их в корень документа и удаляет теперь пустой «Слой 1».
- «GroupsToLayers» преобразует все группы в текущем активном слое в слои, не перемещая и не удаляя что-либо.
- Оба сценария запрашивают «глубину рекурсии», которая указывает, сколько уровней групп-групп-групп следует преобразовать в под-под-подуровни.
- Третий скрипт (ConvertGroupsIntoLayers) просто необходим двум другим, его вызов из меню открывает подсказку, но ничего не делает.
При открытии SVG все фактические слои являются группами внутри нового «Слоя 1». Они могут быть преобразованы обратно без двусмысленности. Однако подслои проблематичны, потому что нет информации, чтобы отличить фактические группы от групп, которые должны быть подуровнями (если есть, пожалуйста, дайте мне знать!). В качестве обходного пути мой сценарий запрашивает глубину рекурсии и преобразует все группы в (под) слои в пределах этой глубины.
В моем случае у меня было три слоя, один из которых был просто контейнером для дополнительных подслоев. Чтобы вернуть исходную структуру слоя, я выполнил FixSvgLayers с глубиной 0, затем выбрал слой контейнера и выполнил «GroupsToLayers» с глубиной 0.
Если бы все три слоя были "контейнерными" слоями, для выполнения правильной структуры было бы достаточно выполнения FixSvgLayers с глубиной 1.
Если вам не нужны какие-либо группы и каждая группа должна быть преобразована в (под) слой, просто введите достаточно большое число в качестве глубины рекурсии.