|
- import xml.etree.ElementTree as ET
- tree = ET.parse("input.svg")
- root = tree.getroot()
- SVG_NS = "http://www.w3.org/2000/svg"
- ET.register_namespace("", SVG_NS)
- prefix = "{" + SVG_NS + "}"
- # iterate over all text elements
- for text in root.findall(prefix+"text"):
- if len(text) == 0:
- continue
- # iterate over all tspan child elements
- for tspan in text:
- # create a new text element with same attributes as tspan
- new_text = ET.Element(prefix+"text",tspan.attrib)
- # set the translate attribute to the new text element
- new_text.set('transform', text.get('transform'))
- # append the children of tspan to the new text element
- new_text.text=tspan[0].text
- # replace the tspan element with the new text element
- root.append(new_text)
- root.remove(text)
- for text in root.findall(prefix+"text"):
- x = float(text.get('x') or 0)
- y = float(text.get('y') or 0)
- transform = text.get('transform').replace(","," ")
- if transform is not None and 'translate' in transform:
- transform=transform[10:-1]
- dx,dy=transform.split(" ")
- x += float(dx)
- y += float(dy)
- text.set('x',str(x))
- text.set('y',str(y))
- text.attrib.pop('transform')
- tree.write("converted/output.svg")
复制代码
Example
变为
可见位置未改变 |
|