Here is a quick fix for the the SVG file uploaded in the initial post. I collapsed groups down to just the board and silkscreen groups (layers), which removed the transpose used in the outer wrapper. Instead of doing the full recalculation to use absolute coordinates, I tried something a lot simpler. After each close (z) command in the path, I added an absolute move (M) command to get the absolute and relative position synchronized. A quick test, loading the image, exporting to gerber, and viewing the result, shows that it worked. But check it again when you use it. My checking was not extensive.
I scaled the view here up to what I think are real world dimensions (for typical computer screens), but that will not affect the image downloaded. It should ‘just work’.
@vanepp The calculation of the absolute move coordinates is simple. With a script that can parse svg path element “d” attributes, it would be easy to automate this.
EDIT: streamlined steps
set absolute coordinates to 0,0
when an absolute move (M) command is seen update absolute coordinates to match move coordinates
when a relative move (m) command is seen, update absolute coordinates to current absolute plus move (delta) coordinates
when a close (z or Z) command is seen, insert an absolute move (M) command (after the close) with the current absolute coordinates
-- can be skipped if the following command is already an absolute move command