Stringify SVG as ASCII with entity encoding

It seems that when processing a SVG file passed via a pipe, Inkscape emits
errors/warnings about an XML parser error if the SVG file is UTF-8
encoded. It still does seem to successfully process the SVG file and
generates the expected output, however, these messages are at least
confusing. Not passing the encoding parameter to etree.tostring() makes
it output ASCII with non-ASCII characters encoded as XML entities, so this
can then be correctly parsed again, and this does not seem to 'confuse'
Inkscape.
This commit is contained in:
Manfred Stock 2021-11-15 22:20:37 +01:00
parent 7dd51d08b6
commit edf8624da4

View file

@ -42,7 +42,7 @@ class SVGTemplate:
# if '$subtitle' in task.parameters and task.parameters['$subtitle'] == '':
# child = svg.findall(".//*[@id='subtitle']")[0]
# child.getparent().remove(child)
self.svgstr = etree.tostring(svg, encoding='unicode')
self.svgstr = etree.tostring(svg).decode('UTF-8')
def __exit__(self, exception_type, exception_value, traceback):
pass