To rzeczywiście ma znaczenia dla mnie, więc przestał płakać, spędził kilka godzin i scenariusza tego rozwiązania:
- pobrać skrypty: https://github.com/JcBernack/IllustratorScripts/archive/master.zip
- umieścić folder "Fix Layers SVG" w standardowy folder skryptów programu Illustrator. Gdzie to zależy od twojej instalacji i języka, mój jest na:
C: \ Program Files \ Adobe \ Adobe Illustrator CS6 (64 Bit) \ Presets \ de_DE \ Skripten
- Uruchom program Illustrator i załaduj SVG, gdzie warstwy są teraz grupami w nowej "Warstwie 1".
- Przejdź do Plik-> Skrypty-> Napraw krawędzie SVG-> FixSvgLayers
- Yay! Wszystkie grupy są teraz rzeczywistymi warstwami, a "Warstwa 1" zniknęła na dobre.
Nieco więcej informacji:
- „FixSvgLayers” konwertuje wszystkie grupy w „warstwa 1” z powrotem do warstwy, przenosi je do głównego dokumentu i usuwa teraz pusta „warstwa 1”.
- "GroupToLayers" konwertuje wszystkie grupy w obrębie aktywnej warstwy na warstwy, bez przenoszenia ani usuwania czegokolwiek.
- Oba skrypty monitują o "głębokość rekursji", która określa, ile poziomów grup-grup-grup powinno zostać przekonwertowanych na pod-pod-pod-warstwy.
- Trzeci skrypt (ConvertGroupsIntoLayers) jest właśnie potrzebny dwóm pozostałym, wywołanie go z menu powoduje otwarcie monitu, ale nic nie robi.
Podczas otwierania SVG wszystkie rzeczywiste warstwy są grupami w nowej "Warstwie 1". Mogą one zostać przekształcone z powrotem bez niejednoznaczności. Pod-warstwy są jednak problematyczne, ponieważ nie ma informacji pozwalających odróżnić rzeczywiste grupy od grup, które powinny być podwarstwami (jeśli jest, dajcie mi znać!). Aby obejść ten problem, mój skrypt monituje o głębokość rekursji i konwertuje wszystkie grupy na (pod) warstwy na tej głębokości.
W moim przypadku miałem trzy warstwy, z których jedna była tylko pojemnikiem na więcej pod-warstw. Aby odzyskać oryginalną strukturę warstw wykonałem FixSvgLayers z głębokością 0, następnie wybrałem warstwę kontenera i wykonałem polecenie "GroupsToLayers" o głębokości 0.
Jeśli wszystkie trzy warstwy były obiektami "kontenerowymi" wykonującymi polecenia FixSvgLayers za pomocą głębokość 1 wystarczyłaby, aby odzyskać właściwą strukturę.
Jeśli nie chcesz, aby jakakolwiek grupa i każda grupa miała być konwertowana na (pod) warstwę, wystarczy wpisać wystarczająco wysoką liczbę jako głębokość rekursji.
Czy tworzysz swoje SVG w Illustratorze? Ponieważ w przeciwnym razie można edytować źródło SVG w edytorze tekstowym (to tylko XML) w celu zmiany warstw. – allanberry