Open blayzen-w opened 1 year ago
Thank you for raising your first issue! Your help to improve svglib is much appreciated!
I don't remember if the fact to apply transforms only on shapes was a conveniency, or if it was required. Feel free to experiment and suggest changes if they are successful.
When clipPaths contain a path with a transform, the path is ignored and discarded with the error message
Unsupported shape type Group for clipping
.The svg I am testing with is the following:
I don't believe this was happening with earlier versions so I decided to do some digging and narrowed the problem down.
The error that is displayed starts here, when the detected shape from the node is neither a Path or a Rect despite the svg using a path element. https://github.com/deeplook/svglib/blob/9a43d4f71a483f844b905d12682d35b18d9099a7/svglib/svglib.py#L655-L656
This is caused from the convertShape function where, if there is a transform, then it will add the shape to a group and apply the transform to the group instead of the shape. https://github.com/deeplook/svglib/blob/9a43d4f71a483f844b905d12682d35b18d9099a7/svglib/svglib.py#L895-L916
I did a quick test and applied the transform directly on the path element ~and everything seemed to work fine~, however I'm not sure if there are any unintended side effects from doing it this way. Is this an intended feature or could I work on a patch to add an optional argument to apply the transformation directly for this use case?
Edit: I doubled checked the output and the transformed path was not placed or transformed correctly so additional work may be needed with this part.