Question about PolyPolygon (and all kind of Shape involving several points) with python API

Stephan Bergmann sbergman at redhat.com
Mon Nov 5 01:09:21 PST 2012


On 11/03/2012 11:11 PM, Steven Marguet wrote:
> I have difficulties to create a PolyLineShape using the Pyhton API of
> LibreOffice (in the Draw application).
> In fact, I don't know what kind of data structure I have to used for the
> points of the PolyLineShape I want to create.
>
> Here is my code :
>
> ====================================================================
> from com.sun.star.awt import Point
> PolyLineShape = "com.sun.star.drawing.PolyLineShape"
>
> def Test(button):
>      document = XSCRIPTCONTEXT.getDocument()
>
>      pages = document.getDrawPages()
>      page = pages.getByIndex(0)
>
>      shape = document.createInstance(PolyLineShape)
>      page.add(shape)
>      shape.setPropertyValue("LineWidth", 50)
>      shape.setPropertyValue("LineColor", 0)
>
>      points = (Point(120,340), Point(1200,3400), Point(1200,6000))

The com.sun.star.drawing.PolyPolygonDescriptor.PolyPolygon property is 
of type com.sun.star.drawing.PointSequenceSequence, i.e., a list of 
lists, so the above probably needs to read

   points = ((Point(120,340), Point(1200,3400), Point(1200,600)),)

instead (but I didn't test it).

>
>      shape.PolyPolygon = points
> ====================================================================
>
> This code creates a CannotConvertException which seems to mean that a
> tuple or a list is not suitable...

Stephan


More information about the LibreOffice mailing list