Zrobiłem trochę badań nad plikami SVG i najwyraźniej viewbox nie jest elementem, który można eksportować za pośrednictwem programu Illustrator. Element viewbox jest zgodny tylko z niektórymi programami, które zdecydowały się użyć tego elementu lub nim manipulować. Niestety, Illustrator nie jest jednym z nich.
Jeśli plik SVG został zapisany w programie Illustrator bez opcji „Zachowaj możliwości edycji programu Illustrator”, możesz cofnąć proces. Wszelkie zmiany dokonane w danych pliku SVG zostaną odzwierciedlone w programie Illustrator, ale poprzez zmianę położenia i rozmiaru zarówno obszaru roboczego, jak i warstw w celu utworzenia pseudo-widoku.
Na razie wszystko, co możesz zrobić, to prace projektowe w programie Illustrator i cały dodatkowy kod do przesunięcia i pozycjonowania pola widzenia w danych pliku. Możesz stworzyć pseudo-viewbox, po prostu zmieniając szerokość Obszarów roboczych + Wysokość / X + Y, a następnie zmieniając także atrybuty Rozmiar i Pozycja obiektów. Ale nigdy nie będzie prawdziwego atrybutu viewbox, dopóki nie opublikują aktualizacji programu Illustrator z edytowalnymi funkcjami viewbox.
Trochę czytania o formacie SVG w programie Illustrator: Adobe Illustrator Zapisz w formacie SVG
Wpadłem na ten problem kilka razy i jedyną rzeczą, która kiedykolwiek pracowała dla mnie, by niezawodnie zresetować pole podglądu SVG do dokładnie 0, 0 podczas eksportowania z programu Illustrator, jest utworzenie nowego pustego dokumentu oraz skopiowanie i wklejenie do niego grafiki .
Lewy górny róg tego nietkniętego domyślnego obszaru roboczego zostanie wyeksportowany jako punkt 0, 0 pola widoku. Użyj inteligentnych przewodników (
cmd-u
) lubalign
okna,Align to Artboard
aby rozpocząć pracę od dokładnie 0, 0.Możesz bezpiecznie zmienić rozmiar obszaru roboczego w prawym dolnym rogu, ale sytuacja zacznie się nie udać, jeśli przesuniesz lewy górny róg. Przeniesienie lewego górnego rogu obszarów roboczych lub importowanie plików SVG do AI wydaje się powodować jakieś dziwne wewnętrzne rozłączenie między linijkami, obszarami roboczymi i jakimś niewidzialnym tajnym punktem początkowym viewbox znanym tylko Illustratorowi.
AFAICT, podobnie jak w przypadku większości rzeczy związanych z siecią lub nowymi technologiami, podejście Adobe do SVG polegało na zebraniu czegoś brutalnie razem, aby mogli się tym chwalić w komunikacie prasowym, a następnie pozostawić to błędne, niedokończone i niekochane, udając, że nie istnieje i trwa jak w 1998 roku.
źródło
viewbox
zmienionych podczas eksportowania do SVG. Masz całkowitą rację, tworząc nowy dokument i kopiując całą kompozycję. Twoja odpowiedź powinna być oznaczona jako poprawna +1.Preserve Illustrator Editing Capabilities
za pierwszym razem, gdy zapisuję, na wypadek, gdy muszę wprowadzić więcej korekt, a potem, gdy myślę, że wszystko jest całkiem dobre, zapisuję je bez niego (wzrost rozmiaru pliku jest dość znaczący, więc będziesz musiał to zrobić this)Wiem, że jest bardzo późno w temacie, ale miałem ten sam problem i zrobiłem następujące.
Mam nadzieję, że to pomaga komuś innemu.
źródło
width="<W>" height="<H>"
do ulubionego edytora tekstu tagu SVG również pomaga (gdzie<W>
i gdzie<H>
byłyby liczby dziesiętne).Miałem bardzo podobny problem, że moja sztuczna inteligencja SVG nie została wyśrodkowana i rozwinięta do pełnego okna przeglądarki, ponieważ AI ciągle zmienia rozmiar obszaru roboczego i zapomina o centrowaniu.
Jedynym sposobem, aby to naprawić, jest ostatni etap ręcznego przetwarzania w Inkscape.
Na koniec musisz ponownie zapisać plik SVG, ale użyj formatu „Zoptymalizowany plik SVG” w oknie dialogowym Zapisz jako. Pojawi się okno dialogowe dla opcji SVG i musisz włączyć „Włącz przeglądanie”.
Ponieważ wszystkie moje pliki SVG są ikonami tego samego rozmiaru, ten etap przetwarzania zajmuje tylko 1 minutę, ponieważ zawsze mam ten sam rozmiar płótna i obiektu. Ale tak, szkoda, że ten krok jest w ogóle potrzebny i powinien zostać naprawiony w AI.
źródło
Zrozumiałem to. Wreszcie! Jest na to prosty sposób. Tak jak:
Problem polegał na tym, że podczas eksportowania obrazu z programu Illustrator (jak wiele osób) obszar roboczy nie jest zawarty w eksportowanym pliku SVG. Ścieżki nie mają na czym oprzeć swoich obliczeń.
W moim przypadku maksymalna wysokość moich obrazów wynosiła
100px
i musiałem oprzeć style CSS dla tych obrazów na podstawie ich szerokości i wysokości. W CSS używamvw
jednostek lub po prostu starych,100%
jeśli SVG ma wypełnić przestrzeń bloku. Ładnie się skaluje. W ten sposób nie będziesz bałagan ustawiania szerokości i wysokości w CSS, aby upewnić się, że wyświetla się poprawnie.Przejrzałem każde logo i ustawiłem wysokość na
100px
i pozwoliłem, aby szerokość automatycznie obliczyła na podstawie proporcji. Następnie dopasowuję obszar roboczy do logo, aby usunąć nieużywane miejsce.Wybrałem prostokąt, wyłączyłem wypełnienie i obrys i upewniłem się, że ma dokładnie taki sam rozmiar jak obszar roboczy. Umieść ten pusty obiekt z tyłu. Teraz, kiedy eksportujesz, ścieżka będzie miała podstawę do pracy nad obliczeniami.
Aby to zrobić w kodzie, wydaje się, że możesz owinąć ścieżki w
rect
i ustawić jego szerokość i wysokość, a następnie możesz ustawićviewBox
to samo (zachowaj proporcje obrazu takie same). Jak pokazano w powyższym przykładzie. Nie przetestowałem tego, ale przetestuję i zaktualizuję.źródło
Udało mi się to naprawić za pomocą Inkscape . Wydaje się, że Illustrator ma słabą obsługę plików SVG.
źródło