8cb1f9f479
Publish SDK (PyPI) / publish (push) Has been cancelled
Publish SDK (npm) / publish (@aionui/officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (windows-latest) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/officecli-sdk) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/sdk) (push) Has been cancelled
Publish SDK (npm) / publish (officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (macos-latest) (push) Has been cancelled
SDK smoke / smoke (ubuntu-latest) (push) Has been cancelled
Skill parity / diff (push) Has been cancelled
1122 lines
43 KiB
JSON
1122 lines
43 KiB
JSON
{
|
|
"$schema": "../_schema.json",
|
|
"format": "pptx",
|
|
"element": "shape",
|
|
"operations": {
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"query": true,
|
|
"remove": true
|
|
},
|
|
"paths": {
|
|
"stable": [
|
|
"/slide[N]/shape[@id=ID]"
|
|
],
|
|
"positional": [
|
|
"/slide[N]/shape[N]"
|
|
]
|
|
},
|
|
"note": "Positional /shape[N] enumerates ALL shapes on the slide including layout-inherited placeholders — new shapes typically land at the end, not at /shape[1]. `add` echoes the canonical /shape[@id=ID] path; prefer that for follow-up Set/Get. effective.* keys (direction, size, font, color, bold) are read-only inheritance-resolved values walked up the placeholder→layout→master→defaults chain; suppressed when the corresponding direct key is set. Each pairs with effective.*.src naming the writing layer. Cross-format note: `color=` on pptx shapes unambiguously sets text/run color. The same bare `color=` key is rejected on xlsx cells (ambiguous with fill) — use `font.color` for text or `fill` for background when working with xlsx cells.",
|
|
"extends": "_shared/shape",
|
|
"properties": {
|
|
"size": {
|
|
"type": "font-size",
|
|
"description": "font size — Add/Set forwards to the first run; Get returns the bare size when every run shares the same explicit FontSize (non-mixed). When sizes are mixed or no run carries an explicit size, bare size is suppressed and the inheritance-resolved effective.size is emitted instead.",
|
|
"aliases": ["fontSize", "fontsize", "font.size"],
|
|
"add": true, "set": true, "get": true,
|
|
"examples": ["--prop size=14", "--prop size=14pt", "--prop size=10.5pt"],
|
|
"readback": "unit-qualified pt (e.g. \"32pt\") when all runs share one explicit FontSize; suppressed when sizes are mixed (read per-run size on the inner run) or absent (read effective.size)",
|
|
"enforcement": "report"
|
|
},
|
|
"evaluated": {
|
|
"type": "bool",
|
|
"description": "cross-handler protocol flag — emitted on shapes whose body contains an <a:fld> dynamic field (slide number, date-time, footer, etc.). True when every dynamic field has cached text the renderer can show; false when at least one is empty (view text substitutes #OCLI_NOTEVAL!{type}; view issues emits subtype slide_field_not_evaluated). PowerPoint always re-renders fields on open, so there is no cache_stale equivalent. Read this via get --json instead of pattern-matching the sentinel.",
|
|
"add": false, "set": false, "get": true,
|
|
"readback": "true|false (true ⇒ all <a:fld> shapes on this node carry display text)",
|
|
"enforcement": "report"
|
|
},
|
|
"isTitle": {
|
|
"type": "bool",
|
|
"description": "true when this shape is the slide title placeholder (or a content placeholder configured as title). Always emitted on every shape so query selectors like `shape[isTitle=true]` and `shape[isTitle=false]` resolve uniformly. Read-only — title-ness is determined by placeholder type at Add time, not as a settable property.",
|
|
"add": false, "set": false, "get": true,
|
|
"readback": "true|false (always present)",
|
|
"enforcement": "report"
|
|
},
|
|
"opacity": {
|
|
"type": "number",
|
|
"description": "fill opacity (0.0 - 1.0). Requires a fill to attach to — opacity alone (without fill/gradient/pattern) has no effect in OOXML.",
|
|
"requires": [
|
|
"fill"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop opacity=0.5 --prop fill=FF0000"
|
|
],
|
|
"readback": "number in [0, 1]",
|
|
"enforcement": "strict"
|
|
},
|
|
"geometry": {
|
|
"type": "string",
|
|
"description": "Preset shape geometry (default: rect). The values list below is illustrative, not exhaustive — many more OOXML presets are accepted (handler-as-truth): pie, arc, chord, the directional arrows (leftArrow, upArrow, downArrow), star4/star6/star8/star10, hexagon/heptagon/octagon/decagon/dodecagon, cloud, plus the callout* family, etc. Any preset the handler recognizes round-trips.",
|
|
"aliases": [
|
|
"preset",
|
|
"shape"
|
|
],
|
|
"values": [
|
|
"rect",
|
|
"roundRect",
|
|
"ellipse",
|
|
"triangle",
|
|
"diamond",
|
|
"parallelogram",
|
|
"rightArrow",
|
|
"star5"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop geometry=ellipse",
|
|
"--prop preset=roundRect"
|
|
],
|
|
"readback": "preset name (e.g. \"ellipse\", \"roundRect\")",
|
|
"enforcement": "strict"
|
|
},
|
|
"adj": {
|
|
"type": "string",
|
|
"description": "Preset adjust handles (a:prstGeom/a:avLst/a:gd). Controls the parametric proportions of a preset (arrow tail/head size, roundRect corner radius, star inner ratio, etc.). Format is \"name:formula\" where formula is an OOXML guide formula such as \"val 6000\". Multiple handles are comma-separated.",
|
|
"aliases": [],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop geometry=leftArrow --prop adj=adj1:val 80000",
|
|
"--prop geometry=roundRect --prop adj=adj:val 16667",
|
|
"--prop adj=\"adj1:val 6000,adj2:val 12000\""
|
|
],
|
|
"readback": "comma-separated name:formula handles (e.g. \"adj1:val 80000\")",
|
|
"enforcement": "lenient"
|
|
},
|
|
"textFill": {
|
|
"type": "string",
|
|
"description": "Fill applied to the text glyphs (a:rPr fill). Accepts a color (solid glyph fill) or round-trips a gradient. The legacy alias 'textGradient' canonicalizes to 'textFill' on readback.",
|
|
"aliases": [
|
|
"textGradient"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop textFill=FF0000"
|
|
],
|
|
"readback": "canonical textFill value",
|
|
"enforcement": "lenient"
|
|
},
|
|
"textWarp": {
|
|
"type": "string",
|
|
"description": "WordArt text warp preset applied to the shape's text body (a:bodyPr/a:prstTxWarp @prst). Use 'none' to remove. The HTML preview surfaces the active warp as a data-textwarp attribute + a 'text-warp' marker class on the shape; real PowerPoint renders the per-glyph warp path.",
|
|
"values": [
|
|
"none",
|
|
"textNoShape",
|
|
"textPlain",
|
|
"textArchUp",
|
|
"textArchDown",
|
|
"textCircle",
|
|
"textWave1",
|
|
"textWave2",
|
|
"textInflate",
|
|
"textDeflate",
|
|
"textCanUp",
|
|
"textCanDown"
|
|
],
|
|
"add": false,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop textWarp=textArchUp",
|
|
"--prop textWarp=textWave1"
|
|
],
|
|
"readback": "warp preset name (e.g. \"textArchUp\")",
|
|
"enforcement": "report"
|
|
},
|
|
"font.latin": {
|
|
"type": "string",
|
|
"description": "Latin-script font slot only (a:latin). Use to target ASCII/European text without overwriting CJK / complex-script slots.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop font.latin=Calibri"
|
|
],
|
|
"readback": "typeface (only emitted when it differs from the bare 'font' slot)",
|
|
"enforcement": "report"
|
|
},
|
|
"font.ea": {
|
|
"type": "string",
|
|
"description": "East-Asian font slot (a:ea) — Chinese / Japanese / Korean text.",
|
|
"aliases": [
|
|
"font.eastasia",
|
|
"font.eastasian"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop font.ea=\"メイリオ\""
|
|
],
|
|
"readback": "typeface (only emitted when it differs from the bare 'font' slot)",
|
|
"enforcement": "report"
|
|
},
|
|
"font.cs": {
|
|
"type": "string",
|
|
"description": "Complex-script font slot (a:cs) — Arabic / Hebrew / Thai etc.",
|
|
"aliases": [
|
|
"font.complexscript",
|
|
"font.complex"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop font.cs=\"Arabic Typesetting\""
|
|
],
|
|
"readback": "typeface",
|
|
"enforcement": "report"
|
|
},
|
|
"direction": {
|
|
"type": "enum",
|
|
"values": [
|
|
"ltr",
|
|
"rtl"
|
|
],
|
|
"description": "paragraph reading direction (a:pPr rtl). Use 'rtl' for Arabic / Hebrew layouts.",
|
|
"aliases": [
|
|
"dir",
|
|
"rtl"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop direction=rtl"
|
|
],
|
|
"readback": "rtl, or ltr. Set direction=ltr pins ltr explicitly by writing rtl=\"0\" so the paragraph overrides any inherited master/layout RTL; Add omits rtl when ltr (relies on the default). Clearing direction removes the attribute.",
|
|
"enforcement": "report"
|
|
},
|
|
"margin": {
|
|
"type": "length",
|
|
"description": "uniform internal padding (text inset) for shape body (a:bodyPr lIns/tIns/rIns/bIns). Also accepts a 4-value 'l,t,r,b' form on Set.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop margin=4",
|
|
"--prop margin=0.1in"
|
|
],
|
|
"readback": "unit-qualified length (e.g. '14.4pt' / '0.36cm') when all four insets are equal; otherwise 'l,t,r,b' with '-' for unset sides",
|
|
"enforcement": "report"
|
|
},
|
|
"textDirection": {
|
|
"type": "string",
|
|
"description": "shape text rotation (a:bodyPr @vert) — works on shapes/textboxes, not just table cells. horizontal|vertical90|vertical270|eaVert|stacked. Round-trips through the same canonical vocabulary as table-cell textDirection. Note: the Get readback key is lowercase 'textdirection'.",
|
|
"aliases": [
|
|
"textdir",
|
|
"vert"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop textDirection=vertical270",
|
|
"--prop textDirection=stacked"
|
|
],
|
|
"readback": "horizontal|vertical90|vertical270|stacked",
|
|
"enforcement": "report"
|
|
},
|
|
"strike": {
|
|
"type": "enum",
|
|
"description": "strikethrough on shape text. Single and double are distinct OOXML tokens (sngStrike / dblStrike); Word splits these into `strike` + `dstrike`, PowerPoint folds both into one attribute.",
|
|
"values": [
|
|
"none",
|
|
"single",
|
|
"double"
|
|
],
|
|
"aliases": [
|
|
"strikethrough",
|
|
"font.strike",
|
|
"font.strikethrough"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop strike=single",
|
|
"--prop strike=double",
|
|
"--prop strike=true"
|
|
],
|
|
"readback": "single | double | none. Boolean `true` on add/set is accepted as an alias for `single`.",
|
|
"enforcement": "report"
|
|
},
|
|
"highlight": {
|
|
"type": "color",
|
|
"description": "text highlight color behind the glyphs (a:highlight). Unlike Word's fixed named-color list, accepts any color (hex, named, rgb(), scheme names like accent1). 'none'/'false' removes the highlight.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop highlight=FFFF00",
|
|
"--prop highlight=accent1",
|
|
"--prop highlight=none"
|
|
],
|
|
"readback": "#RRGGBB hex (or scheme color name) read from the first run's a:highlight",
|
|
"enforcement": "report"
|
|
},
|
|
"cap": {
|
|
"type": "enum",
|
|
"description": "letter-case rendering mode for shape text (rPr/cap).",
|
|
"values": [
|
|
"none",
|
|
"small",
|
|
"all"
|
|
],
|
|
"aliases": [
|
|
"allCaps",
|
|
"allcaps",
|
|
"smallCaps",
|
|
"smallcaps"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop cap=all",
|
|
"--prop allCaps=true"
|
|
],
|
|
"readback": "none | small | all",
|
|
"enforcement": "report"
|
|
},
|
|
"lang": {
|
|
"type": "string",
|
|
"description": "BCP-47 language tag. lang lives per-run (drawingML a:rPr/@lang) — a shape has no language of its own, only an aggregate of differently-tongued runs. add/set on a shape is a convenience that writes the FIRST run's rPr; read it back at run scope (/shape[N]/paragraph[P]/run[R]). Not surfaced at shape level: a first-run projection cannot say which language each run is, and a newly added run would not inherit it.",
|
|
"aliases": [
|
|
"altLang",
|
|
"altlang"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": false,
|
|
"examples": [
|
|
"--prop lang=en-US"
|
|
],
|
|
"readback": "run scope only (/shape[N]/paragraph[P]/run[R])",
|
|
"enforcement": "report"
|
|
},
|
|
"spacing": {
|
|
"type": "number",
|
|
"description": "character spacing in 1/100 pt (drawingML rPr/@spc).",
|
|
"aliases": [
|
|
"spc",
|
|
"charspacing",
|
|
"letterspacing"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop spacing=200"
|
|
],
|
|
"readback": "integer",
|
|
"enforcement": "report"
|
|
},
|
|
"kern": {
|
|
"type": "number",
|
|
"description": "minimum kerning size in 1/100 pt (drawingML rPr/@kern). Get surfaces the raw integer via long-tail rPr attribute readback.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop kern=1200"
|
|
],
|
|
"readback": "integer",
|
|
"enforcement": "report"
|
|
},
|
|
"autoFit": {
|
|
"type": "enum",
|
|
"values": [
|
|
"normal",
|
|
"shrink",
|
|
"shape",
|
|
"none"
|
|
],
|
|
"aliases": [
|
|
"autofit"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"description": "text body auto-fit mode. 'normal'/'shrink' shrinks text to fit (normAutofit); 'shape' resizes the shape to fit text; 'none' overflows. Aliases (Add+Set): true/shrink → normal, resize → shape, false → none.",
|
|
"examples": [
|
|
"--prop autoFit=normal",
|
|
"--prop autoFit=shrink",
|
|
"--prop autoFit=shape",
|
|
"--prop autoFit=none"
|
|
],
|
|
"readback": "normal | shape | none",
|
|
"enforcement": "report"
|
|
},
|
|
"fontScale": {
|
|
"type": "string",
|
|
"aliases": [
|
|
"fontscale"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"description": "normAutofit font-scale (shrink-to-fit text ratio). Input as a percent: bare integer 0-100 (75 → 75%) or N% form ('75%'). Stored as OOXML thousandths-of-percent (75000); readback emits the raw OOXML integer.",
|
|
"examples": [
|
|
"--prop fontScale=75",
|
|
"--prop fontScale=75%"
|
|
],
|
|
"readback": "OOXML thousandths-of-percent (e.g. 75000)",
|
|
"enforcement": "report"
|
|
},
|
|
"lnSpcReduction": {
|
|
"type": "string",
|
|
"aliases": [
|
|
"lnspcreduction",
|
|
"lineSpaceReduction",
|
|
"linespacereduction",
|
|
"lineSpacingReduction",
|
|
"linespacingreduction"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"description": "normAutofit line-space reduction (shrink-to-fit spacing ratio). Input as a percent: bare integer 0-100 (20 → 20%) or N% form ('20%'). Stored as OOXML thousandths-of-percent (20000); readback emits the raw OOXML integer.",
|
|
"examples": [
|
|
"--prop lnSpcReduction=20",
|
|
"--prop lineSpaceReduction=20%"
|
|
],
|
|
"readback": "OOXML thousandths-of-percent (e.g. 20000)",
|
|
"enforcement": "report"
|
|
},
|
|
"lineSpacing": {
|
|
"type": "string",
|
|
"description": "line spacing for shape paragraphs (multiplier or pt).",
|
|
"aliases": [
|
|
"linespacing"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop lineSpacing=1.5x"
|
|
],
|
|
"readback": "1.5x or 18pt",
|
|
"enforcement": "report"
|
|
},
|
|
"spaceBefore": {
|
|
"type": "length",
|
|
"aliases": [
|
|
"spacebefore"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop spaceBefore=6pt"
|
|
],
|
|
"readback": "unit-qualified pt",
|
|
"enforcement": "report"
|
|
},
|
|
"spaceAfter": {
|
|
"type": "length",
|
|
"aliases": [
|
|
"spaceafter"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop spaceAfter=6pt"
|
|
],
|
|
"readback": "unit-qualified pt",
|
|
"enforcement": "report"
|
|
},
|
|
"gradient": {
|
|
"type": "string",
|
|
"description": "gradient fill spec. Linear: 'C1-C2[-ANGLE]' or 'LINEAR;C1;C2;ANGLE'. Radial: 'radial:C1-C2[-FOCUS]' (focus: tl/tr/bl/br/center). Path: 'path:C1-C2[-FOCUS]'. Per-stop position: 'C@PCT' (e.g. 'FF0000@0-0000FF@100').",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop gradient=\"FF0000-0000FF\"",
|
|
"--prop gradient=\"FF0000-0000FF-90\"",
|
|
"--prop gradient=\"LINEAR;FF0000;0000FF;45\"",
|
|
"--prop gradient=\"radial:4B0082-1E90FF-center\""
|
|
],
|
|
"readback": "linear: 'linear;C1;C2;ANGLE' (semicolon-separated, degree integer). radial/path: 'radial:C1-C2-FOCUS' / 'path:C1-C2-FOCUS'. When gradient is present, 'fill' reads back as 'gradient' unless a solidFill also exists.",
|
|
"enforcement": "report"
|
|
},
|
|
"pattern": {
|
|
"type": "string",
|
|
"description": "pattern fill: 'preset' or 'preset:fg' or 'preset:fg:bg' (defaults: fg=000000, bg=FFFFFF).",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop pattern=\"diagBrick:FF0000:FFFFFF\""
|
|
],
|
|
"readback": "preset:fg_color[:bg_color] e.g. diagBrick:#FF0000:#FFFFFF",
|
|
"enforcement": "report"
|
|
},
|
|
"image": {
|
|
"type": "string",
|
|
"description": "image (blip) fill: path to a local image file used as the shape fill.",
|
|
"aliases": [
|
|
"imagefill"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop image=/path/to/photo.png"
|
|
],
|
|
"readback": "\"true\" when shape has an image (blipFill) fill",
|
|
"enforcement": "report"
|
|
},
|
|
"fillRect": {
|
|
"type": "string",
|
|
"description": "image-fill stretch insets as \"l,t,r,b\" in thousandths of a percent (perMille). Positive insets letterbox the image inside the shape; negative insets oversize it (cover-style framing). Applies to an image (blipFill) shape; consumed alongside image=.",
|
|
"aliases": [
|
|
"fillrect"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop image=/path/photo.png --prop fillRect=0,-36364,0,-85860"
|
|
],
|
|
"readback": "\"l,t,r,b\" perMille when the shape's blipFill stretch carries non-zero insets",
|
|
"enforcement": "report"
|
|
},
|
|
"srcRect": {
|
|
"type": "string",
|
|
"description": "image-fill source crop as \"l,t,r,b\" in thousandths of a percent (perMille) — the fraction trimmed from each edge of the source image before it fills the shape. Applies to an image (blipFill) shape; consumed alongside image=.",
|
|
"aliases": [
|
|
"srcrect"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop image=/path/photo.png --prop srcRect=10000,0,10000,0"
|
|
],
|
|
"readback": "\"l,t,r,b\" perMille when the shape's blipFill carries a srcRect crop",
|
|
"enforcement": "report"
|
|
},
|
|
"lineWidth": {
|
|
"type": "length",
|
|
"description": "outline width.",
|
|
"aliases": [
|
|
"linewidth"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop lineWidth=1pt"
|
|
],
|
|
"readback": "length in pt (e.g. \"1pt\")",
|
|
"enforcement": "report"
|
|
},
|
|
"lineDash": {
|
|
"type": "enum",
|
|
"description": "outline dash pattern (drawingML prstDash). Also reachable as the third segment of the compound line='color:width:style' form.",
|
|
"aliases": [
|
|
"linedash",
|
|
"line.dash"
|
|
],
|
|
"values": [
|
|
"solid",
|
|
"dot",
|
|
"dash",
|
|
"dashDot",
|
|
"lgDash",
|
|
"lgDashDot",
|
|
"lgDashDotDot",
|
|
"sysDot",
|
|
"sysDash",
|
|
"sysDashDot",
|
|
"sysDashDotDot",
|
|
"longdash",
|
|
"longdashdot"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop lineDash=dash",
|
|
"--prop lineDash=dashDot",
|
|
"--prop lineDash=sysDash",
|
|
"--prop line=FF0000:1.5:dash"
|
|
],
|
|
"readback": "canonical OOXML prstDash token (solid | dot | dash | dashDot | lgDash | lgDashDot | lgDashDotDot | sysDot | sysDash | sysDashDot | sysDashDotDot). 'longdash'/'longdashdot' are accepted on input as aliases for lgDash/lgDashDot. 'dashDotDot' has no native enum member; it is accepted as an alias for sysDashDotDot (Get readback returns sysDashDotDot).",
|
|
"enforcement": "report"
|
|
},
|
|
"lineGradient": {
|
|
"type": "string",
|
|
"description": "gradient outline (drawingML <a:ln>/<a:gradFill>). Accepts a stop list 'color@pos,color@pos,...' (pos in percent) with an optional 'angle=Ndeg' segment, mirroring the fill gradient form. Set/Add replace any solid outline color. Get readback is emitted under the canonical key 'line.gradient'.",
|
|
"aliases": [
|
|
"linegradient",
|
|
"line.gradient"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop lineGradient=\"FF0000@0,0000FF@100\"",
|
|
"--prop lineGradient=\"FF0000@0,00FF00@50,0000FF@100,angle=90deg\""
|
|
],
|
|
"readback": "gradient stop string (canonical key line.gradient)",
|
|
"enforcement": "report"
|
|
},
|
|
"lineCap": {
|
|
"type": "enum",
|
|
"description": "line end cap style (drawingML <a:ln @cap>). Affects how the stroke terminates at endpoints (and dash gaps for dashed strokes).",
|
|
"aliases": [
|
|
"linecap",
|
|
"line.cap"
|
|
],
|
|
"values": [
|
|
"round",
|
|
"flat",
|
|
"square"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop lineCap=round"
|
|
],
|
|
"readback": "round | flat | square",
|
|
"enforcement": "report"
|
|
},
|
|
"lineJoin": {
|
|
"type": "enum",
|
|
"description": "line join style at shape corners (drawingML <a:ln> child <a:round/> | <a:bevel/> | <a:miter/>). Accepts compound 'miter:<lim>' to also set the miter limit in one key.",
|
|
"aliases": [
|
|
"linejoin",
|
|
"line.join"
|
|
],
|
|
"values": [
|
|
"round",
|
|
"bevel",
|
|
"miter"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop lineJoin=miter",
|
|
"--prop lineJoin=miter:800000"
|
|
],
|
|
"readback": "round | bevel | miter",
|
|
"enforcement": "report"
|
|
},
|
|
"miterLimit": {
|
|
"type": "number",
|
|
"description": "miter join limit (drawingML <a:miter @lim>) in 1000ths of a percent (e.g. 800000 = 800%). Implies lineJoin=miter when set without an explicit lineJoin.",
|
|
"aliases": [
|
|
"miterlimit",
|
|
"miter.limit",
|
|
"line.miterlimit"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop miterLimit=800000"
|
|
],
|
|
"readback": "integer (1000ths of a percent)",
|
|
"enforcement": "report"
|
|
},
|
|
"cmpd": {
|
|
"type": "enum",
|
|
"description": "compound line style (drawingML <a:ln @cmpd>) for double/triple/asymmetric strokes.",
|
|
"aliases": [
|
|
"compoundLine",
|
|
"compoundline",
|
|
"line.compound"
|
|
],
|
|
"values": [
|
|
"sng",
|
|
"dbl",
|
|
"thickThin",
|
|
"thinThick",
|
|
"tri"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop cmpd=dbl",
|
|
"--prop cmpd=thickThin"
|
|
],
|
|
"readback": "canonical OOXML token (sng | dbl | thickThin | thinThick | tri)",
|
|
"enforcement": "report"
|
|
},
|
|
"lineAlign": {
|
|
"type": "enum",
|
|
"description": "stroke alignment relative to the path (drawingML <a:ln @algn>). 'ctr' centers the stroke on the path; 'in' insets it inside the shape boundary.",
|
|
"aliases": [
|
|
"linealign",
|
|
"line.align"
|
|
],
|
|
"values": [
|
|
"ctr",
|
|
"in"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop lineAlign=ctr"
|
|
],
|
|
"readback": "ctr | in",
|
|
"enforcement": "report"
|
|
},
|
|
"headEnd": {
|
|
"type": "enum",
|
|
"description": "arrowhead at the line's start (drawingML <a:headEnd type=...>). Supported on any outline (shape or connector), not connector-only.",
|
|
"aliases": [
|
|
"headend",
|
|
"arrowStart",
|
|
"arrowstart"
|
|
],
|
|
"values": [
|
|
"none",
|
|
"triangle",
|
|
"stealth",
|
|
"diamond",
|
|
"oval",
|
|
"arrow"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop headEnd=triangle"
|
|
],
|
|
"readback": "canonical OOXML token (none | triangle | stealth | diamond | oval | arrow)",
|
|
"enforcement": "report"
|
|
},
|
|
"tailEnd": {
|
|
"type": "enum",
|
|
"description": "arrowhead at the line's end (drawingML <a:tailEnd type=...>). Supported on any outline (shape or connector).",
|
|
"aliases": [
|
|
"tailend",
|
|
"arrowEnd",
|
|
"arrowend"
|
|
],
|
|
"values": [
|
|
"none",
|
|
"triangle",
|
|
"stealth",
|
|
"diamond",
|
|
"oval",
|
|
"arrow"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop tailEnd=arrow"
|
|
],
|
|
"readback": "canonical OOXML token (none | triangle | stealth | diamond | oval | arrow)",
|
|
"enforcement": "report"
|
|
},
|
|
"list": {
|
|
"type": "string",
|
|
"description": "list style for shape paragraphs (bullet|numbered|alpha|roman|none|<char>).",
|
|
"aliases": [
|
|
"liststyle"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop list=bullet"
|
|
],
|
|
"readback": "list style token of the first paragraph",
|
|
"enforcement": "report"
|
|
},
|
|
"link": {
|
|
"type": "string",
|
|
"description": "click-action target for the shape. Accepts an absolute URI (https://, mailto:, tel:, …), slide[N] for an in-deck jump (1-based; the target slide must already exist), or a named navigation action (firstslide, lastslide, nextslide, previousslide, endshow). Pass 'none' or empty to clear.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop link=https://example.com",
|
|
"--prop link=slide[3]",
|
|
"--prop link=nextslide"
|
|
],
|
|
"readback": "URL / slide[N] / named action",
|
|
"enforcement": "report"
|
|
},
|
|
"tooltip": {
|
|
"type": "string",
|
|
"description": "tooltip / screen-tip text for hyperlink. Applied together with `link` in a single set/add call; standalone tooltip without link is not supported (no hyperlink relationship to attach to). Set-side may update an existing hyperlink's tooltip in-place without re-supplying link.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop link=https://example.com --prop tooltip=\"click here\""
|
|
],
|
|
"readback": "hyperlink screen-tip text",
|
|
"enforcement": "report"
|
|
},
|
|
"animation": {
|
|
"type": "string",
|
|
"description": "animation effect spec.",
|
|
"aliases": [
|
|
"animate"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop animation=fade"
|
|
],
|
|
"readback": "synthesized effect spec of the form \"effect-class-durationMs\" (e.g. \"fade-entrance-400\"), resolved from the slide Timing tree; absent when the shape has no animation",
|
|
"enforcement": "report"
|
|
},
|
|
"effective.direction": {
|
|
"type": "enum",
|
|
"values": [
|
|
"rtl",
|
|
"ltr"
|
|
],
|
|
"description": "resolved reading direction inherited from placeholder→layout→master→presentation defaults. Suppressed when 'direction' is set directly on the shape.",
|
|
"add": false,
|
|
"set": false,
|
|
"get": true,
|
|
"readback": "rtl | ltr",
|
|
"enforcement": "report"
|
|
},
|
|
"effective.size": {
|
|
"type": "length",
|
|
"description": "resolved font size inherited from placeholder→layout→master→presentation defaults. Suppressed when 'size' is set directly on the shape.",
|
|
"add": false,
|
|
"set": false,
|
|
"get": true,
|
|
"readback": "unit-qualified pt (e.g. \"18pt\")",
|
|
"enforcement": "report"
|
|
},
|
|
"effective.font": {
|
|
"type": "string",
|
|
"description": "resolved font name inherited from placeholder→layout→master→presentation defaults. Suppressed when 'font' is set directly on the shape.",
|
|
"add": false,
|
|
"set": false,
|
|
"get": true,
|
|
"readback": "font name",
|
|
"enforcement": "report"
|
|
},
|
|
"effective.color": {
|
|
"type": "color",
|
|
"description": "resolved text color inherited from placeholder→layout→master→presentation defaults. Suppressed when 'color' is set directly on the shape.",
|
|
"add": false,
|
|
"set": false,
|
|
"get": true,
|
|
"readback": "#-prefixed uppercase hex (scheme colors pass through)",
|
|
"enforcement": "report"
|
|
},
|
|
"effective.bold": {
|
|
"type": "bool",
|
|
"description": "resolved bold inherited from placeholder→layout→master→presentation defaults. Suppressed when 'bold' is set directly on the shape.",
|
|
"add": false,
|
|
"set": false,
|
|
"get": true,
|
|
"readback": "true/false",
|
|
"enforcement": "report"
|
|
},
|
|
"effective.italic": { "type": "bool", "description": "resolved italic via cascade.", "add": false, "set": false, "get": true, "readback": "true/false", "enforcement": "report" },
|
|
"effective.underline": { "type": "string", "description": "resolved underline via cascade.", "add": false, "set": false, "get": true, "readback": "single/double/none", "enforcement": "report" },
|
|
"effective.strike": { "type": "string", "description": "resolved strike via cascade.", "add": false, "set": false, "get": true, "readback": "single/double/none", "enforcement": "report" },
|
|
"effective.font.latin": { "type": "string", "description": "resolved Latin font via cascade.", "add": false, "set": false, "get": true, "readback": "font name", "enforcement": "report" },
|
|
"effective.font.ea": { "type": "string", "description": "resolved East Asian font via cascade.", "add": false, "set": false, "get": true, "readback": "font name", "enforcement": "report" },
|
|
"effective.font.cs": { "type": "string", "description": "resolved complex script font via cascade.", "add": false, "set": false, "get": true, "readback": "font name", "enforcement": "report" },
|
|
"effective.align": { "type": "string", "description": "resolved paragraph alignment via cascade.", "add": false, "set": false, "get": true, "readback": "left/center/right/justify", "enforcement": "report" },
|
|
"effective.lineSpacing": { "type": "string", "description": "resolved line spacing via cascade.", "add": false, "set": false, "get": true, "readback": "multiplier (e.g. 1.5x) or fixed pt", "enforcement": "report" },
|
|
"effective.spaceBefore": { "type": "length", "description": "resolved spaceBefore via cascade.", "add": false, "set": false, "get": true, "readback": "unit-qualified pt", "enforcement": "report" },
|
|
"effective.spaceAfter": { "type": "length", "description": "resolved spaceAfter via cascade.", "add": false, "set": false, "get": true, "readback": "unit-qualified pt", "enforcement": "report" },
|
|
"effective.size.src": { "type": "string", "description": "path of the cascade layer that wrote effective.size.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.font.src": { "type": "string", "description": "path of the cascade layer that wrote effective.font.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.font.latin.src": { "type": "string", "description": "path of the cascade layer that wrote effective.font.latin.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.font.ea.src": { "type": "string", "description": "path of the cascade layer that wrote effective.font.ea.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.font.cs.src": { "type": "string", "description": "path of the cascade layer that wrote effective.font.cs.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.color.src": { "type": "string", "description": "path of the cascade layer that wrote effective.color.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.bold.src": { "type": "string", "description": "path of the cascade layer that wrote effective.bold.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.italic.src": { "type": "string", "description": "path of the cascade layer that wrote effective.italic.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.underline.src": { "type": "string", "description": "path of the cascade layer that wrote effective.underline.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.strike.src": { "type": "string", "description": "path of the cascade layer that wrote effective.strike.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.align.src": { "type": "string", "description": "path of the cascade layer that wrote effective.align.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.lineSpacing.src": { "type": "string", "description": "path of the cascade layer that wrote effective.lineSpacing.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.spaceBefore.src": { "type": "string", "description": "path of the cascade layer that wrote effective.spaceBefore.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"effective.spaceAfter.src": { "type": "string", "description": "path of the cascade layer that wrote effective.spaceAfter.", "add": false, "set": false, "get": true, "readback": "path string", "enforcement": "report" },
|
|
"id": {
|
|
"type": "number",
|
|
"description": "cNvPr shape id; @id in /shape[@id=ID]. add honors a caller-supplied id so dump-replay keeps it stable for spTgt animation refs; immutable after creation.",
|
|
"add": true,
|
|
"set": false,
|
|
"get": true,
|
|
"readback": "integer shape id",
|
|
"enforcement": "report"
|
|
},
|
|
"zorder": {
|
|
"type": "number",
|
|
"description": "1-based z-order in slide shape tree. On add/set, repositions the shape within the shape tree (1 = back).",
|
|
"aliases": ["z-order", "order"],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": ["--prop zorder=1"],
|
|
"readback": "1-based integer (1 = back)",
|
|
"enforcement": "report"
|
|
},
|
|
"bevel": {
|
|
"type": "string",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"description": "3-D top bevel descriptor (sp3d.bevelT). Form: 'preset[-width[-height]]' with width/height in points; height defaults to width. Preset values: angle, artDeco, circle, convex, coolSlant, cross, divot, hardEdge, relaxedInset, riblet, slope, softRound. Example: 'circle-6-6'.",
|
|
"examples": [
|
|
"--prop bevel=circle",
|
|
"--prop bevel=circle-6",
|
|
"--prop bevel=angle-8-4"
|
|
],
|
|
"readback": "'preset' alone when width=height=6pt (OOXML default — 'circle-6' reads back as 'circle'), 'preset-N' when width=height=N (symmetric, e.g. 'circle-4'), or 'preset-widthPt-heightPt' when width≠height. Surfaces when sp3d.bevelT is present.",
|
|
"enforcement": "report"
|
|
},
|
|
"bevelBottom": {
|
|
"type": "string",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"description": "3-D bottom bevel descriptor (sp3d.bevelB). Same grammar as 'bevel'. Single-size shorthand 'preset-N' sets width=height=N.",
|
|
"examples": [
|
|
"--prop bevelBottom=circle-4",
|
|
"--prop bevelBottom=circle-4-4"
|
|
],
|
|
"readback": "'preset' alone when default size (6pt), 'preset-N' when width=height=N (symmetric), or 'preset-widthPt-heightPt' when width≠height.",
|
|
"enforcement": "report"
|
|
},
|
|
"depth": {
|
|
"type": "length",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"description": "3-D extrusion height (sp3d @extrusionH). Accepts the canonical length input forms — bare number is points, also accepts pt/cm/in/px/emu suffix. 'none' or '0' clears.",
|
|
"examples": [
|
|
"--prop depth=10",
|
|
"--prop depth=10pt",
|
|
"--prop depth=0.5cm",
|
|
"--prop depth=none"
|
|
],
|
|
"readback": "bare numeric points (e.g. '10', '14.17').",
|
|
"enforcement": "report"
|
|
},
|
|
"lighting": {
|
|
"type": "string",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"description": "3-D scene lighting rig name (scene3d.lightRig @rig). OOXML preset rig values: threePt, balanced, soft, harsh, flood, contrasting, morning, sunrise, sunset, chilly, freezing, flat, twoPt, glow, brightRoom.",
|
|
"examples": [
|
|
"--prop lighting=threePt",
|
|
"--prop lighting=balanced"
|
|
],
|
|
"readback": "OOXML preset light rig token.",
|
|
"enforcement": "report"
|
|
},
|
|
"material": {
|
|
"type": "string",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"description": "3-D preset material (sp3d.prstMaterial). Accepted tokens (case-insensitive): clear, darkEdge (alias dkEdge), flat, matte, metal, plastic, powder, softEdge, softMetal, translucentPowder, warmMatte, wireframe (alias wire).",
|
|
"examples": [
|
|
"--prop material=metal",
|
|
"--prop material=plastic"
|
|
],
|
|
"readback": "OOXML preset material token.",
|
|
"enforcement": "report"
|
|
},
|
|
"reflection": {
|
|
"type": "string",
|
|
"description": "reflection effect. Accepts 'true' / 'tight' / 'half' / 'full' to enable a reflection of varying length, or 'none' to clear.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop reflection=true",
|
|
"--prop reflection=half",
|
|
"--prop reflection=full"
|
|
],
|
|
"readback": "tight | half | full (mapped from a:reflection @endPos: <70000=tight, <95000=half, else=full).",
|
|
"enforcement": "report"
|
|
},
|
|
"shadow": {
|
|
"type": "string",
|
|
"description": "outer shadow. Pass a color (e.g. '000000') or 'true' (defaults to black). Routed to text-level rPr for text-only shapes.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop shadow=#808080",
|
|
"--prop shadow=none",
|
|
"--prop shadow=000000",
|
|
"--prop shadow=true"
|
|
],
|
|
"readback": "compound '#RRGGBB-blurPt-angleDeg-distPt-opacityPct' (e.g. '#000000-4-45-3-40'). Color is a '#'-prefixed 6-digit hex (the alpha is carried solely by the trailing opacity field, never double-encoded as an alpha byte); blur, distance in pt; angle in degrees; opacity in percent (0-100).",
|
|
"enforcement": "report"
|
|
},
|
|
"innerShadow": {
|
|
"type": "string",
|
|
"description": "inner shadow (a:innerShdw) as `color-blur-angle-dist-opacity` (mirrors `shadow`). Input color is hex (with or without `#`, 6- or 8-digit `RRGGBBAA`) or a scheme name (with optional +lumMod/+shade transforms); blur/dist in points; angle in degrees; opacity 0-100. Rendered as a CSS inset box-shadow in the HTML preview.",
|
|
"aliases": [
|
|
"innershadow"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop innerShadow=000000",
|
|
"--prop innerShadow=FF0000-4-45-3-60"
|
|
],
|
|
"readback": "compound '#RRGGBB-blurPt-angleDeg-distPt-opacityPct' (e.g. '#FF0000-4-45-3-60'). Color is a '#'-prefixed 6-digit hex (alpha carried solely by the trailing opacity field); blur, distance in pt; angle in degrees; opacity in percent (0-100).",
|
|
"enforcement": "report"
|
|
},
|
|
"glow": {
|
|
"type": "string",
|
|
"description": "glow effect. Pass a color (e.g. '4472C4') or 'true' (defaults to accent blue).",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop glow=#4472C4",
|
|
"--prop glow=4472C4",
|
|
"--prop glow=true"
|
|
],
|
|
"readback": "compound '#RRGGBBAA-radiusPt-opacityPct' (e.g. '#4472C4BF-8-75'). Color is CSS-form 8-digit hex with leading # (alpha last); radius in pt; opacity in percent.",
|
|
"enforcement": "report"
|
|
},
|
|
"flipH": {
|
|
"type": "bool",
|
|
"aliases": ["flipHorizontal"],
|
|
"description": "Flip horizontally (Office-API alias of flip=h).",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": ["--prop flipH=true"],
|
|
"readback": "true when the shape carries a horizontal flip",
|
|
"enforcement": "report"
|
|
},
|
|
"flipV": {
|
|
"type": "bool",
|
|
"aliases": ["flipVertical"],
|
|
"description": "Flip vertically (Office-API alias of flip=v).",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": ["--prop flipV=true"],
|
|
"readback": "true when the shape carries a vertical flip",
|
|
"enforcement": "report"
|
|
},
|
|
"lineOpacity": {
|
|
"type": "number",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"requires": ["line"],
|
|
"description": "shape outline alpha as fraction (0..1). Requires an outline (line/lineColor) to attach to. Surfaces when the outline carries an a:alpha child.",
|
|
"examples": [
|
|
"--prop line=FF0000:2:solid --prop lineOpacity=0.5"
|
|
],
|
|
"readback": "fraction 0..1",
|
|
"enforcement": "report"
|
|
},
|
|
"x": {
|
|
"type": "length",
|
|
"description": "x in EMU/length form (e.g. 2cm). pptx absolute positioning.",
|
|
"aliases": [
|
|
"left"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop x=2",
|
|
"--prop x=2cm",
|
|
"--prop x=1in",
|
|
"--prop x=72pt"
|
|
],
|
|
"readback": "length string (FormatEmu)",
|
|
"enforcement": "strict"
|
|
},
|
|
"y": {
|
|
"type": "string",
|
|
"description": "y in EMU/length form (e.g. 2cm). pptx absolute positioning.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop y=3",
|
|
"--prop y=3cm"
|
|
],
|
|
"enforcement": "report",
|
|
"aliases": [
|
|
"top"
|
|
],
|
|
"readback": "length string (FormatEmu)"
|
|
},
|
|
"width": {
|
|
"type": "string",
|
|
"description": "width in EMU/length form (e.g. 2cm). pptx absolute positioning.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"aliases": [
|
|
"w"
|
|
],
|
|
"examples": [
|
|
"--prop width=4",
|
|
"--prop width=6cm",
|
|
"--prop width=5cm"
|
|
],
|
|
"enforcement": "report",
|
|
"readback": "length string (FormatEmu)"
|
|
},
|
|
"height": {
|
|
"type": "string",
|
|
"description": "height in EMU/length form (e.g. 2cm). pptx absolute positioning.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"aliases": [
|
|
"h"
|
|
],
|
|
"examples": [
|
|
"--prop height=3",
|
|
"--prop height=3cm"
|
|
],
|
|
"enforcement": "report",
|
|
"readback": "length string (FormatEmu)"
|
|
}
|
|
}
|
|
}
|