IConnector PathData Always Returns Unidirectional Coordinates – Line Direction Information Is Lost

We are currently using Aspose.Slides for .NET in a production-grade slide parser to extract visual elements such as images, textboxes, shapes, and unconnected lines (IConnector) .

However, we’ve encountered a critical issue with the way IConnector handles path data:


:exclamation: Problem Description

When a line is manually drawn from bottom to top or from right to left, the extracted path data from IConnector.AsIGeometryShape.GetGeometryPaths() always returns coordinates as if the line were drawn from top-left to bottom-right.

More specifically:

  • PathCommandType.MoveTo always returns (0, 0)
  • PathCommandType.LineTo always returns (connector.Width, connector.Height)
  • Thus, any user-drawn direction is lost, and all lines appear unidirectional

This behavior occurs even for unconnected lines, i.e., when both StartShapeConnectedTo and EndShapeConnectedTo are null.


:mag: Expected Behavior

We expect the SegmentData in LineTo to reflect the true drawing direction of the line on the slide, including negative offsets when applicable. This is important for content analysis, especially when line direction conveys semantic meaning (e.g., flow diagrams, organizational charts, annotation arrows, etc.).


:white_check_mark: Request

Please clarify the following points:

  1. Is this behavior by design? If so, can it be overridden or customized?
  2. Is there an alternative way in Aspose.Slides to obtain the actual start and end point of an unconnected IConnector?
  3. If not currently possible, can this limitation be addressed in a future version?

We’re happy to provide sample files if needed.

Thank you for your support.

@SewonNa,
Thank you for posting the questions.

Aspose.Slides returns the shape geometry’s path data exactly as it’s stored in PowerPoint documents. Presentation shapes can be rotated and flipped vertically or horizontally, but the geometry path data remains unchanged.

To calculate point coordinates relative to the slide, apply transformations using the IShape.Rotation, IShape.Frame.FlipH, and IShape.Frame.FlipV properties.