Look at this files, they are similar:
But when they import in blender it looks like this:
The file saved as Inkscape SVG moved to the top, regular SVG stays in place. But why?
As you see in the code, blender checks if SVG have an special attribute inkscape:version, and if it has one, it move all SVG to the top. The idea is to match bottom right corner with world origin, instead top right corner:
if self._node.getAttribute('inkscape:version'):
raw_height = self._node.getAttribute('height')
document_height = SVGParseCoord(raw_height, 1.0)
matrix = matrix @ matrix.Translation([0.0, -document_height , 0.0])But why height is not equal the real height of the SVG? Well, because it's not a height of SVG itself, it is size of SVG on printing or displaying in web-page or in previewer. The real height of SVG in SVG-units is located in viewbox attribute:
https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/viewBox
So I suggest to move SVG content to real height of SVG located in viewbox attribute:
Next thing that I suggest in this diff, is thy inkscape-created files have this offset, but other files not? This 2 files identical
Every program will display it similar, but only Blender checks inkscape:version to moves graphics in viewport. All files should import in same algorithm because inkscape:version gives no difference to SVG-code!
As result all SVG files import identically, bottom right corner matches with world origin:




