1

Я работаю над процессом, в котором мы будем генерировать SVG с идентификаторами определенных элементов. Я хочу иметь возможность редактировать SVG в Adobe Illustrator. Однако я обнаружил, что при редактировании файла в Illustrator все идентификаторы меняются.

Можно ли заставить Illustrator хранить мои идентификаторы?

2 ответа2

4

Я пытаюсь использовать Illustrator с svg уже несколько лет, но с переменным успехом. Обычно он сохраняет идентификаторы, если вы сохраняете их в наиболее разрешающем формате (SVG 1.1); но он действительно любит переписывать различные элементы SVG в свой собственный образ мышления о них. Я настоятельно рекомендую не использовать Illustrator для редактирования файлов SVG, в которых вы хотите иметь чистую и аккуратную разметку. Вместо этого вы можете использовать Inkscape.

0

Так что я знаю, что этот вопрос был задан давно. Поскольку Inkscape довольно медленно работает с x11 на Mac, я решил опубликовать здесь свое решение на случай, если оно поможет кому-то еще.

Если у вас установлен python на вашем Mac, вы можете использовать этот скрипт для изменения svg, прежде чем открывать его в Illustrator. Затем, после того как вы закончите редактирование, сделайте обратное, чтобы опубликовать новый атрибут в поле id. Что-то вроде вонючего, но производительность иллюстратора сделала его лучше, чем страдания от Inkscape для меня -

from bs4 import BeautifulSoup

svg = open('myawesome.svg', 'r').read()

soup = BeautifulSoup(svg)

paths = soup.findAll('path')

for p in paths:
    p['inkscape:temp_id'] = p['id']

    html = p.prettify("utf-8")
    with open("output.svg", "a") as file:
        file.write(html)

Хитрость заключается в том, чтобы открыть исходный SVG в текстовом редакторе и заменить пути выходными данными этого скрипта. Когда вы закончите в иллюстраторе, скопируйте этот скрипт на python и скопируйте «inkscape:temp_id» обратно в p ['id'] (в отличие от первого раза), и тогда все готово.

Надеюсь, это поможет кому-то там. Я потратил 4 часа сегодня на то, чтобы выяснить, как сохранить идентификаторы элементов в Illustrator для проекта, над которым я работаю, и это лучшее, что я смог придумать. Удачи!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .