Vì vậy, tôi biết câu hỏi này đã được hỏi từ lâu. Vì Inkscape khá chậm qua x11 trên Mac, tôi đã quyết định đăng giải pháp của mình lên đây trong trường hợp nó giúp được người khác.
Nếu bạn đã cài đặt python trên máy mac của mình, bạn có thể sử dụng tập lệnh này để sửa đổi svg trước khi bạn mở nó trong phần minh họa. Sau đó, sau khi bạn chỉnh sửa xong, về cơ bản làm ngược lại để đăng attr mới trở lại trường id. Khá là khó khăn, nhưng hiệu suất của họa sĩ minh họa đã làm cho nó tốt hơn là đau khổ với Inkscape đối với tôi -
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)
Mẹo ở đây là mở SVG gốc trong trình soạn thảo văn bản và thay thế đường dẫn bằng đầu ra của tập lệnh này. Khi bạn hoàn thành công việc minh họa, hãy sao chép tập lệnh python này và sao chép 'inkscape: temp_id' trở lại p ['id'] (ngược lại với lần đầu tiên) và sau đó bạn được đặt.
Hy vọng điều này sẽ giúp ai đó ngoài kia. Tôi đã lãng phí 4 giờ hôm nay để tìm ra cách bảo tồn ID phần tử trong phần minh họa cho một dự án tôi đang thực hiện và đây là cách tốt nhất tôi có thể nghĩ ra. Chúc may mắn!