Como você preserva o id do elemento ao editar um SVG no Adobe Illustrator?

1

Estou trabalhando em um processo no qual geraremos SVGs com id's em determinados elementos. Eu quero poder editar o SVG no Adobe Illustrator. No entanto, descobri que quando edito o arquivo no Illustrator, todos os ids são alterados.

O Illustrator pode ser feito para manter meu id?

    
por Joe 20.12.2012 / 17:27

2 respostas

3

Estou tentando usar o Illustrator com o svg por alguns anos, com sucesso. geralmente preserva os IDs, se você salvar no formato mais permissivo (SVG 1.1); mas realmente adora reescrever os vários elementos svg em sua maneira de pensar sobre eles. Eu strongmente recomendo não usar o Illustrator para editar arquivos svg nos quais você deseja ter uma marcação limpa e cuidadosa. Você pode usar o Inkscape.

    
por 20.12.2012 / 22:11
0

Então, eu sei que essa pergunta foi feita há muito tempo. Como o Inkscape é bem lento no x11 no Mac, decidi postar minha solução aqui, caso isso ajude outra pessoa.

Se você tem o python instalado no seu mac, você pode usar este script para modificar o svg antes de abri-lo no illustrator. Então, depois de terminar de editar, basicamente faça o oposto para postar o novo attr de volta ao campo id. Meio vago, mas o desempenho do ilustrador fez com que fosse melhor do que sofrer com o Inkscape por mim -

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)

O truque aqui é abrir o SVG original em um editor de texto e substituir o caminho pela saída desse script. Quando estiver pronto no illustrator, copie este script python e copie 'inkscape: temp_id' de volta para p ['id'] (o oposto da primeira vez) e então você está pronto.

Espero que isso ajude alguém lá fora. Eu perdi 4 horas hoje descobrindo como preservar IDs de elementos no illustrator para um projeto em que estou trabalhando e isso é o melhor que eu consegui fazer. Boa sorte!

    
por 31.07.2014 / 19:43