Work in progress — this reference is being written in the open. Unfinished pages are excluded from search engines.
Paged · IDML Reference
Frames & paths

Page-item types

The six IDML page-item elements — TextFrame, Rectangle, Oval, GraphicLine, Polygon, and Group — the key attributes of each, and which ones the renderer honours.

Pro· reference

IDML has six page-item elements, and they all share one skeleton — they differ only in a handful of fields.

In short: The six page-item elements are TextFrame, Rectangle, Oval, GraphicLine, Polygon, and Group. Every one of them carries the same skeleton — a Self id, an ItemTransform, a PathGeometry, paint attributes, and an AppliedObjectStyle — and the differences between them come down to a few extra fields each. This page is the reference: one attribute table per element, with each attribute marked, from the parser, for exactly what our renderer does with it.

The two filled shapes below — a Rectangle with a red fill and an Oval with a blue fill — are the smallest example that exercises this page. Neither carries text or an image; the FillColor alone makes them paint.

A Rectangle and an Oval, each painted by nothing but a FillColor swatch.

Spreads/Spread_uspread.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<idPkg:Spread xmlns:idPkg="http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging" DOMVersion="20.0">
  <Spread Self="uspread" PageCount="1" BindingLocation="0" ShowMasterItems="true" AllowPageShuffle="true" ItemTransform="1 0 0 1 0 0">
    <Page Self="upage" Name="1" AppliedMaster="umaster" ItemTransform="1 0 0 1 0 0" GeometricBounds="0 0 841.89 595.276" MasterPageTransform="1 0 0 1 0 0"/>
    <Rectangle Self="urect" ContentType="GraphicType" AppliedObjectStyle="ObjectStyle/$ID/[None]" Visible="true" Name="$ID/" ItemTransform="1 0 0 1 80 100" FillColor="Color/Red" StrokeColor="Swatch/None" StrokeWeight="0">
      <Properties>
        <PathGeometry>
          <GeometryPathType PathOpen="false">
            <PathPointArray>
              <PathPointType Anchor="0 0" LeftDirection="0 0" RightDirection="0 0"/>
              <PathPointType Anchor="0 200" LeftDirection="0 200" RightDirection="0 200"/>
              <PathPointType Anchor="300 200" LeftDirection="300 200" RightDirection="300 200"/>
              <PathPointType Anchor="300 0" LeftDirection="300 0" RightDirection="300 0"/>
            </PathPointArray>
          </GeometryPathType>
        </PathGeometry>
      </Properties>
    </Rectangle>
    <Oval Self="uoval" ContentType="GraphicType" AppliedObjectStyle="ObjectStyle/$ID/[None]" Visible="true" Name="$ID/" ItemTransform="1 0 0 1 200 380" FillColor="Color/Blue" StrokeColor="Swatch/None" StrokeWeight="0">
      <Properties>
        <PathGeometry>
          <GeometryPathType PathOpen="false">
            <PathPointArray>
              <PathPointType Anchor="0 0" LeftDirection="0 0" RightDirection="0 0"/>
              <PathPointType Anchor="0 240" LeftDirection="0 240" RightDirection="0 240"/>
              <PathPointType Anchor="240 240" LeftDirection="240 240" RightDirection="240 240"/>
              <PathPointType Anchor="240 0" LeftDirection="240 0" RightDirection="240 0"/>
            </PathPointArray>
          </GeometryPathType>
        </PathGeometry>
      </Properties>
    </Oval>
  </Spread>
</idPkg:Spread>

Attributes shared by every page item

These appear on all six elements (the Color/* references resolve against Resources/Graphic.xml):

Attribute · (common page-item attributes)Type / valuesSupportNotes
Selfstring idSupportedThe item id. Used by groups, threading (NextTextFrame), and ItemLayer references.
ItemTransform"a b c d tx ty"SupportedAffine placement onto the page. Composed with any enclosing Group transform.
PathGeometrychild elementSupportedThe anchor outline. Real exports carry it even for plain rectangles. See the geometry chapter.
FillColorswatch ref (e.g. "Color/Red")SupportedResolved against Graphic.xml. "Swatch/None" → no fill.
FillTintdouble (0–100, or -1)SupportedTints the resolved swatch toward paper. -1 inherits.
StrokeColorswatch refSupported"Swatch/None" → no stroke.
StrokeWeightdouble (pt)SupportedStroke thickness. 0 → no stroke drawn.
StrokeTypestroke-style refSupportedBuilt-in Solid / Dashed / Dotted map to dash patterns; custom StrokeStyle defs fall back to solid.
AppliedObjectStyleObjectStyle refSupportedSupplies defaults for unset fill / stroke / inset. Resolved by the scene layer.
ItemLayerLayer refSupportedThe item is skipped when its layer is hidden or non-printable.

TextFrame

A TextFrame is the only member with a ParentStory: the story id whose paragraphs flow into the frame. Its ContentType is TextType. Everything else is shared.

Attribute · TextFrameType / valuesSupportNotes
ParentStoryStory id (e.g. "u10")SupportedThe story whose text this frame composes. Resolved against the design map’s story list.
ContentType"TextType"Parsed, not yet renderedRole marker. The parser infers "text" from the element name + ParentStory rather than reading this attribute.
NextTextFrameTextFrame idSupportedThe frame that continues the story when it overflows. Drives threading.
AppliedObjectStyleObjectStyle refSupportedReal-world frames lean on this for fill / stroke far more than the per-element attributes.

The TextFramePreference child — insets, vertical justification, auto-sizing, first baseline — has its own reference page.

Rectangle

The workhorse. A Rectangle with a FillColor is a colour panel; with a nested <Image> it is a picture frame; with neither it is an empty outline. Its ContentType is GraphicType (or Unassigned).

Attribute · RectangleType / valuesSupportNotes
PathGeometrychild elementSupportedFour corner anchors for a plain rect. The parser keeps the anchors and routes non-rectangular outlines through the polygon path.
CornerOptionenumParsed, not yet renderedNone renders square; every non-square variant (Rounded, Bevel, Inset, …) is drawn as Rounded for now. See the geometry chapter.
StrokeAlignmentCenter / Inside / OutsideSupportedInside / Outside approximated by inset/outsetting the path by half the stroke weight.
GradientFillAngledouble (deg)SupportedDirection of a gradient fill around the frame centre. Pairs with GradientFillLength.
FillColor / StrokeColor / StrokeWeightsee commonSupportedThe paint that makes the shape visible.

Oval

Same fill and stroke story as Rectangle. Its geometry is the ellipse inscribed in the path's bounding box — a square outline yields a circle, as in the example above.

Attribute · OvalType / valuesSupportNotes
PathGeometrychild elementSupportedThe bounding-box outline. The renderer inscribes the ellipse inside it.
FillColor / FillTintswatch ref / doubleSupportedFills the ellipse.
StrokeColor / StrokeWeightswatch ref / doubleSupportedStrokes the ellipse outline.
AppliedObjectStyleObjectStyle refSupportedDefaults for unset paint.

GraphicLine

A straight stroke with no fill region. IDML stores the line implicitly: its two endpoints are the top-left and bottom-right corners of the path's bounding box. A GraphicLine has no FillColor field — only stroke attributes mean anything.

Attribute · GraphicLineType / valuesSupportNotes
PathGeometrychild elementSupportedTwo anchors. The endpoints are the bounds’ opposite corners.
StrokeColorswatch refSupportedThe line colour. "Swatch/None" makes the line invisible.
StrokeWeightdouble (pt)SupportedLine thickness.
StrokeTypestroke-style refSupportedDash pattern for dashed / dotted lines.
Parsed, not yet renderedArrowheads (LeftLineEnd / RightLineEnd) are not yet drawn — a GraphicLine renders as a plain stroke.

Polygon

An arbitrary closed outline — charts, stars, cut-out shapes. The parser keeps the full anchor list (and per-contour boundaries for compound paths).

Attribute · PolygonType / valuesSupportNotes
PathGeometrychild elementSupportedThe full anchor outline. Multiple GeometryPathType children make a compound path (e.g. a shape with a hole).
FillColor / FillTintswatch ref / doubleSupportedFills the closed outline.
StrokeColor / StrokeWeightswatch ref / doubleSupportedStrokes the outline.
AppliedObjectStyleObjectStyle refSupportedDefaults for unset paint.

Group

A Group is not a shape — it is a container. Its children are the page items it clusters, and its own ItemTransform composes onto each of them so the whole cluster moves, scales, or rotates as one. It carries no fill or stroke of its own.

Attribute · GroupType / valuesSupportNotes
Selfstring idSupportedThe group id.
ItemTransform"a b c d tx ty"SupportedComposed onto every member. The parser lifts each child out with the composed transform already applied.
(member page items)child elementsSupportedRectangle / Oval / GraphicLine / Polygon / TextFrame / nested Group, in document order.

Group membership and the group-level transparency block get a fuller treatment on the Groups page.

Frequently asked questions

Which attributes do all six page items share? Every page item carries a Self id, an ItemTransform, a PathGeometry, paint attributes (FillColor, FillTint, StrokeColor, StrokeWeight, StrokeType), an AppliedObjectStyle, and an ItemLayer reference. The renderer honours all of these; the per-element tables above cover only the fields that differ.

What is the difference between a Rectangle and an Oval in IDML? Both share the same fill-and-stroke story, but their geometry differs: a Rectangle paints the path outline directly, while an Oval paints the ellipse inscribed in the path's bounding box — so a square Oval outline yields a circle.

Are corner options and line arrowheads rendered? Not fully. CornerOption is parsed but every non-square variant (Rounded, Bevel, Inset, and so on) is drawn as Rounded for now, and GraphicLine arrowheads (LeftLineEnd / RightLineEnd) are parsed but not yet drawn — the line renders as a plain stroke.

On this page