XML Structure
Any item within a frames list of type "shape", corresponding to a ?Document Object Model - ShapeFrame object:
<document> <pages> <item> <frames> <item type="shape" x="10mm" y="10mm" width="80mm" height="20mm" > <paths> <item name="" id="6172D8D8-BE56-2D15-0D16-FF08CB84143F" closed="true"> <points> <item id="90696856-0F21-C22E-BD0B-FF08CBC5DF35" type="line" y="0mm" x="40 mm" /> <item id="438D4845-0870-0774-2B04-FF08CBC812AE" type="line" y="20 mm" x="80 mm"/> <item id="CFE591E3-BCEC-59A1-1F79-FF08CBC9AFB7" type="line" y="40 mm" x="40 mm" /> <item id="DA7D6038-C95B-5C18-E0C3-FF08CBC97167" type="line" y="20 mm" x="0mm" /> </points> </item> </paths> </item> </frames> </item> </pages> </document>
ShapeFrame XML
The main definition of a shape comes from its "paths" property (see lower). An important note is that when updating or creating such a frame through XML, you should:
- Have all path points in positive coordinates (x/y), including if possible any bezier curves, and start one point at x=0, and one (or the same) at y=0
- Set the frame's width and height to the bounding coordinates (maximum x/y of any point, including any bezier curves)
- At a minimum try to ensure that the proportions of width/height match (as closely as possible) the proportions of the bounding coordinates of the path points
While these are not absolute requirements for display and PDF rendering, failing to do so may result in unexpected behavior while editing the path (or the frame dimensions) within CHILI Editor. There, the coordinates of the frame and the paths influence each other (resizing a frame will scale the path points. Editing the path will update the frame's position and dimensions).
These same notes apply when editing the clippingPath of a TextFrame object, or the frameClippingPath of an ImageFrame.
Paths XML
The Paths XML corresponds to an object of type ?Document Object Model - Paths. This (hierarchically) contains:
- Path items: ?Document Object Model - Path
- Path Points: ?Document Object Model - PathPoints
- Path Point Items: ?Document Object Model - PathPoint
- Path Points: ?Document Object Model - PathPoints
An individual Path Point has a "type" property (?Editor Enumerations - PathPointType), where:
- "line" (the default) only requires x and y
- "bezier" also requires controlLeftX, controlLeftY, controlRightX, and controlRightY
All coordinates of a path point are relevant to its parent's topleft coordinate (eg a ShapeFrame). Starting a line in that corner would be x=0 and y=0