Appearance
@shbernal/ts-pptx / index / ObjectOptions
Interface: ObjectOptions
Defined in: src/types/slide.ts:57
Reusable optional data/path fields. Use DataOrPathRequiredProps for APIs that require at least one source.
Extends
Properties
_bodyProp?
optional_bodyProp?:object
Defined in: src/types/text.ts:337
align?
optionalalign?:AlignH
anchor?
optionalanchor?:TextAnchor
bIns?
optionalbIns?:number
lIns?
optionallIns?:number
numCol?
optionalnumCol?:number
prstTxWarp?
optionalprstTxWarp?:string
rIns?
optionalrIns?:number
spcCol?
optionalspcCol?:number
tIns?
optionaltIns?:number
vert?
optionalvert?:"horz"|"vert"|"vert270"|"wordArtVert"|"eaVert"|"mongolianVert"|"wordArtVertRtl"
wrap?
optionalwrap?:boolean
Inherited from
_connectorAdj?
optional_connectorAdj?:number[]
Defined in: src/types/slide.ts:61
Connector adjust-guide values (OOXML 1000ths-of-a-percent), one per bend; emitted as <a:gd name="adjN">
_endCxn?
optional_endCxn?:object
Defined in: src/types/slide.ts:65
Connector end-point binding: target shape objectName (raw, as the caller spelled it) + connection-site index; resolved to <a:endCxn> at serialize time
idx
idx:
number
name
name:
string
_lineIdx?
optional_lineIdx?:number
Defined in: src/types/text.ts:351
Inherited from
_placeholderIdx?
optional_placeholderIdx?:number
Defined in: src/types/slide.ts:58
_placeholderType?
optional_placeholderType?:"media"|"body"|"title"|"chart"|"pic"|"tbl"
Defined in: src/types/slide.ts:59
_startCxn?
optional_startCxn?:object
Defined in: src/types/slide.ts:63
Connector start-point binding: target shape objectName (raw, as the caller spelled it) + connection-site index; resolved to <a:stCxn> at serialize time
idx
idx:
number
name
name:
string
_szAuto?
optional_szAuto?:object
Defined in: src/types/slide.ts:73
Image: which dimensions were omitted by the user and should be derived from the image's natural pixel size at serialize time. Path-based images can't be measured synchronously in addImage() (bytes are loaded async during export), so the missing extent is backfilled once _relsMedia[].data is populated. { w, h } true means "derive this side from the natural ratio". Base64 data images are measured eagerly in addImage() and never set this.
h
h:
boolean
w
w:
boolean
adjustHandles?
optionaladjustHandles?:ShapeAdjustHandle[]
Defined in: src/types/shape.ts:170
Adjust handles (<a:ahLst>) for a custGeom shape — draggable handles (XY or polar), optionally bound to guides via gdRef*.
Inherited from
align?
optionalalign?:HAlign
Defined in: src/types/shape.ts:89
Horizontal alignment
Default
ts
'left'Inherited from
altText?
optionalaltText?:string
Defined in: src/types/media.ts:34
Alt Text value ("How would you describe this object and its contents to someone who is blind?")
- PowerPoint: [right-click on an image] > "Edit Alt Text..."
Inherited from
anchorCtr?
optionalanchorCtr?:boolean
Defined in: src/types/table.ts:225
Centre the cell's whole text block horizontally within the cell (a:tcPr/@anchorCtr), independent of each paragraph's own align.
The two do different things and compose: align decides where each line sits inside the text block, anchorCtr decides where that block sits inside the cell. With left-aligned text in a wide cell, anchorCtr: true centres the ragged-right column of lines as a unit while keeping their left edges flush with each other.
false is the schema default, so it emits nothing — the same reasoning as horzOverflow: 'clip'.
Default
ts
falseInherited from
angleRange?
optionalangleRange?: [number,number]
Defined in: src/types/shape.ts:96
Radius (only for ShapeType.pie, ShapeType.arc, ShapeType.blockArc)
- In the case of ShapeType.blockArc you have to setup the arcThicknessRatio
- values: [0-359, 0-359]
Default
ts
[270, 0]Inherited from
arcThicknessRatio?
optionalarcThicknessRatio?:number
Defined in: src/types/shape.ts:115
Radius (only for ShapeType.blockArc)
- You have to setup the angleRange values too
- values: 0.0-1.0
Default
ts
0.5Inherited from
autoPageCharWeight?
optionalautoPageCharWeight?:number
Defined in: src/types/table.ts:184
Auto-paging character weight
- adjusts how many characters are used before lines wrap
- range: -1.0 to 1.0
Default
ts
0.0Example
ts
0.5 // lines are longer (increases the number of characters that can fit on a given line)Inherited from
TableCellProps.autoPageCharWeight
autoPageLineWeight?
optionalautoPageLineWeight?:number
Defined in: src/types/table.ts:192
Auto-paging line weight
- adjusts how many lines are used before slides wrap
- range: -1.0 to 1.0
Default
ts
0.0Example
ts
0.5 // tables are taller (increases the number of lines that can fit on a given slide)Inherited from
TableCellProps.autoPageLineWeight
baseline?
optionalbaseline?:number
Defined in: src/types/text.ts:353
Inherited from
biLevel?
optionalbiLevel?:object
Defined in: src/types/media.ts:224
Recolor the image to two-level black & white (<a:biLevel thresh="…"/>)
- every pixel at/above the luminance threshold becomes white, everything below it black (MS-PPT > Format Picture > Picture Color > Recolor > Black and White …%)
threshold
threshold:
number
Luminance split point as a 0.0–1.0 fraction (serialized to thresh, the 0–1 fraction ×100000).
Example
ts
{ threshold: 0.5 } // split at 50% luminanceInherited from
bold?
optionalbold?:boolean
Defined in: src/types/text.ts:23
Bold style
Default
ts
falseInherited from
border?
optionalborder?:BorderProps| [BorderProps,BorderProps,BorderProps,BorderProps]
Defined in: src/types/table.ts:202
The cell's four edge borders (a:tcPr/a:lnT|lnR|lnB|lnL).
- a single
BorderPropsis broadcast to all four sides - an array is read in TRBL order (
[top, right, bottom, left])
Overrides the table-level TableProps.border default entirely — the two do not merge per side. For the two corner-to-corner rules see diagonal; for the table's outside edge see TableProps.outerBorder.
Inherited from
breakLine?
optionalbreakLine?:boolean
Defined in: src/types/text.ts:28
Add a line-break
Default
ts
falseInherited from
bullet?
optionalbullet?:boolean|"inherit"| {characterCode?:string;color?:string;fontFace?:string;image?: {data?:string;path?:string; };indent?:number;numberStartAt?:number;numberType?:"alphaLcParenBoth"|"alphaLcParenR"|"alphaLcPeriod"|"alphaUcParenBoth"|"alphaUcParenR"|"alphaUcPeriod"|"arabicParenBoth"|"arabicParenR"|"arabicPeriod"|"arabicPlain"|"romanLcParenBoth"|"romanLcParenR"|"romanLcPeriod"|"romanUcParenBoth"|"romanUcParenR"|"romanUcPeriod";size?:number;type?:"number"|"bullet"; }
Defined in: src/types/text.ts:53
Add standard or custom bullet
- use
truefor standard bullet - pass object options for custom bullet
false(and omitting the option) is the explicit off: it writes<a:buNone/>plusmarL="0" indent="0", which overrides whatever bullet the layout's or master's list style sets for this level'inherit'states nothing at all — no bullet child and no margin attributes — so the list style keeps reaching the paragraph. This is the one state omission cannot spell, because omitting the option meansfalsehere for compatibility
The margins are only a default of the bullet state: paraMarginLeft and paraIndent state @marL/@indent independently in any of the three, including an inherited margin under a drawn bullet.
Union Members
boolean
"inherit"
Type Literal
{ characterCode?: string; color?: string; fontFace?: string; image?: { data?: string; path?: string; }; indent?: number; numberStartAt?: number; numberType?: "alphaLcParenBoth" | "alphaLcParenR" | "alphaLcPeriod" | "alphaUcParenBoth" | "alphaUcParenR" | "alphaUcPeriod" | "arabicParenBoth" | "arabicParenR" | "arabicPeriod" | "arabicPlain" | "romanLcParenBoth" | "romanLcParenR" | "romanLcPeriod" | "romanUcParenBoth" | "romanUcParenR" | "romanUcPeriod"; size?: number; type?: "number" | "bullet"; }
characterCode?
optionalcharacterCode?:string
Bullet character code (unicode)
Example
ts
'25BA' // 'BLACK RIGHT-POINTING POINTER' (U+25BA)color?
optionalcolor?:string
Bullet glyph color (separate from the text run color)
Example
ts
'FF0000' // red bulletfontFace?
optionalfontFace?:string
Bullet glyph font typeface (<a:buFont/>), e.g. for symbol-font bullets
Example
ts
'Wingdings' // render `characterCode` using the Wingdings fontimage?
optionalimage?:object
Image to use as the bullet glyph ("picture bullet", <a:buBlip>)
- supply an image
path(filesystem/URL) or base64data(same forms asaddImage()) - raster formats (PNG/JPG/GIF) and SVG are supported; use
sizeto scale relative to the text height - SVG bullets embed a PNG preview plus the SVG (the same dual-rel handling as
addImage()) - takes precedence over
type/characterCodewhen set
Examples
ts
image: { path: 'images/star.png' }ts
image: { data: 'image/png;base64,iVBOR...' }ts
image: { path: 'images/star.svg' }image.data?
optionaldata?:string
image.path?
optionalpath?:string
indent?
optionalindent?:number
Indentation (space between bullet and text) (points)
Default
ts
27 // DEF_BULLET_MARGINExample
ts
10 // Indents text 10 points from bulletnumberStartAt?
optionalnumberStartAt?:number
Number bullets start at
Default
ts
1Example
ts
10 // numbered bullets start with 10numberType?
optionalnumberType?:"alphaLcParenBoth"|"alphaLcParenR"|"alphaLcPeriod"|"alphaUcParenBoth"|"alphaUcParenR"|"alphaUcPeriod"|"arabicParenBoth"|"arabicParenR"|"arabicPeriod"|"arabicPlain"|"romanLcParenBoth"|"romanLcParenR"|"romanLcPeriod"|"romanUcParenBoth"|"romanUcParenR"|"romanUcPeriod"
Number type
Example
ts
'romanLcParenR' // roman numerals lower-case with paranthesis rightsize?
optionalsize?:number
Bullet glyph size as a percentage of the run's text size (25–400)
Default
ts
100Example
ts
80 // bullet glyph is 80% of the text sizetype?
optionaltype?:"number"|"bullet"
Bullet type
Default
ts
bulletDefault
ts
falseInherited from
caps?
optionalcaps?:"small"|"all"|"none"
Defined in: src/types/text.ts:149
Text capitalization (a:rPr/@cap, ST_TextCapsType)
'all'= ALL CAPS'small'= Small Caps'none'= the explicit off: it writescap="none", which overrides a capitalization the run would otherwise inherit. Omitting the option states nothing and lets that inheritance stand- PowerPoint: Font > Effects > All Caps / Small Caps
Default
ts
(unset) inheritInherited from
cell3D?
optionalcell3D?:TableCell3DProps
Defined in: src/types/table.ts:231
A 3-D bevel on the cell (a:tcPr/a:cell3D). Niche: PowerPoint's table UI has no control for it, so it reaches a deck from a theme or another producer, and this exists to author and reproduce one. See TableCell3DProps.
Inherited from
charSpacing?
optionalcharSpacing?:number
Defined in: src/types/text.ts:357
Character spacing
Inherited from
clrChange?
optionalclrChange?:object
Defined in: src/types/media.ts:235
Recolor the image by mapping one source color to another (<a:clrChange>)
- every pixel matching
fromis repaintedto— the classic "swap the flat background out" recolour (MS-PPT > Format Picture > Picture Color > Set Transparent Color is the single-colour sibling) - colors accept
HexColororThemeColor, same as fills /duotone
from
from:
string
Source color to replace (<a:clrFrom>).
to
to:
string
Replacement color (<a:clrTo>).
Example
ts
{ from: '000000', to: 'FF0000' } // turn black pixels redInherited from
color?
optionalcolor?:string
Defined in: src/types/text.ts:157
Text color
HexColororThemeColor- MS-PPT > Format Shape > Text Options > Text Fill & Outline > Text Fill > Color
Examples
ts
'FF0000' // hex color (red)ts
SchemeColor.text1 // Theme color (Text1)Inherited from
colspan?
optionalcolspan?:number
Defined in: src/types/table.ts:235
Cell colspan
Inherited from
columns?
optionalcolumns?:number
Defined in: src/types/text.ts:365
Number of text columns in the text body
- PowerPoint: Format Shape > Shape Options > Size & Properties > Text Box > Columns > "Number"
- range: 1-16
Default
ts
1Example
ts
2 // flow text into two columnsInherited from
columnSpacing?
optionalcolumnSpacing?:number
Defined in: src/types/text.ts:373
Spacing between text columns (points)
- PowerPoint: Format Shape > Shape Options > Size & Properties > Text Box > Columns > "Spacing"
- only applies when
columns> 1
Default
ts
0Example
ts
10 // 10pt gap between columnsInherited from
TextPropsOptions.columnSpacing
colW?
optionalcolW?:number|number[]
Defined in: src/types/slide.ts:78
connectionSites?
optionalconnectionSites?:ShapeConnectionSite[]
Defined in: src/types/shape.ts:165
Connection sites (<a:cxnLst>) for a custGeom shape — the points a connector can attach to. Positions are absolute in the object's own space (like points); a startShapeIdx/endShapeIdx on an addConnector indexes into this list.
Example
ts
[{ ang: 0, x: 1, y: 0 }, { ang: 180, x: 0, y: 1 }]Inherited from
crop?
optionalcrop?:object
Defined in: src/types/media.ts:125
Crop the source image to a sub-region by percentage edge insets, emitted verbatim as OOXML <a:srcRect>.
- each value is the percent (0–100) trimmed off that edge of the source image, the same model PowerPoint's Picture Format > Crop uses;
l+randt+bmust each be < 100 - the remaining sub-region is stretched to fill the picture's displayed
w×hbox, so this is the faithful way to reproduce a deck that maps several icons out of one composite raster - operates on the source image directly (independent of natural-pixel measurement), so unlike
sizing: 'crop'(which crops in displayed inches) it works for SVG and unmeasurable formats - mutually exclusive with sizing; if both are set
cropwins andsizingis ignored
b?
optionalb?:number
Percent (0–100) trimmed from the bottom edge of the source image.
Default
ts
0l?
optionall?:number
Percent (0–100) trimmed from the left edge of the source image.
Default
ts
0r?
optionalr?:number
Percent (0–100) trimmed from the right edge of the source image.
Default
ts
0t?
optionalt?:number
Percent (0–100) trimmed from the top edge of the source image.
Default
ts
0Example
ts
{ l: 0, t: 0, r: 50, b: 50 } // keep the top-left quadrant of the source imageInherited from
cx?
optionalcx?:Coord
Defined in: src/types/slide.ts:75
cy?
optionalcy?:Coord
Defined in: src/types/slide.ts:76
data?
optionaldata?:string
Defined in: src/types/core.ts:76
base64-encoded string
- Useful for avoiding potential path/server issues
Example
ts
'image/png;base64,iVtDafDrBF[...]=' // pre-encoded image in base-64Inherited from
diagonal?
optionaldiagonal?:TableCellDiagonals
Defined in: src/types/table.ts:211
The cell's corner-to-corner rules — PowerPoint's "Diagonal Down/Up Border".
Kept off border's tuple on purpose: see TableCellDiagonals. A diagonal on a merged cell is one stroke across the whole region, so only the span origin carries it — the covered cells inherit the origin's edges but never its diagonals.
Example
ts
diagonal: { tlToBr: { type:'solid', color:'C00000' } } // strike the cell outInherited from
duotone?
optionalduotone?:object
Defined in: src/types/media.ts:202
Recolor the image as a two-tone (duotone) effect
- maps the image's shadows to
shadowand its highlights tohighlight - serializes
<a:duotone>inside the picture's<a:blip>(MS-PPT > Format Picture > Picture Color > Recolor) - colors accept
HexColororThemeColor, same as fills - the classic brand treatment: tint stock photography into a single brand hue
highlight
highlight:
string
Color mapped to the image's light/highlight tones.
shadow
shadow:
string
Color mapped to the image's dark/shadow tones.
Example
ts
{ shadow: '250F6B', highlight: 'FFFFFF' } // deep-blue duotoneInherited from
fill?
optionalfill?:ShapeFillProps
Defined in: src/types/shape.ts:122
Shape fill color properties
Examples
ts
{ color:'FF0000' } // hex color (red)ts
{ color:'0088CC', transparency:50 } // hex color, 50% transparentts
{ color:SchemeColor.accent1 } // Theme color Accent1Inherited from
fit?
optionalfit?:"resize"|"none"|TextFitShrinkProps|"shrink"
Defined in: src/types/table.ts:293
Shrink cell text to fit when it would overflow the cell's fixed height.
'shrink'measures the wrapped text and bakes a reduced literal font size onto the cell's runs so the text fits — PowerPoint does not support text autofit (normAutofit) inside table cells, so there is no font-scale flag to set; the size itself is lowered, which both PowerPoint and LibreOffice render identically with no edit/resize.- Requires the cell font registered via TsPptx.registerFontMetrics; without metrics it is a no-op (the cell keeps its authored size) and warns once.
- Only triggers when the cell's row has a fixed height that the text exceeds. With auto-height rows (no
rowH/h), the row simply grows, so nothing shrinks. - Only
'shrink'is acted on for cells.'resize'and the object form are ignored here: a table row already auto-grows to fit its tallest cell (the cell equivalent ofspAutoFit), so there is nothing to bake. (The wider union is shared with TextPropsOptions.fit so table-levelfitcan cascade to cells.)
Example
ts
'shrink' // measured when the cell font is registered; else no-opInherited from
flipH?
optionalflipH?:boolean
Defined in: src/types/media.ts:39
Flip horizontally?
Default
ts
falseInherited from
flipV?
optionalflipV?:boolean
Defined in: src/types/media.ts:44
Flip vertical?
Default
ts
falseInherited from
fontFace?
optionalfontFace?:string
Defined in: src/types/text.ts:167
Font face name
Applied to the Latin (<a:latin>) and complex-script (<a:cs>) font slots, matching how PowerPoint writes a font picked from the UI. The East Asian slot (<a:ea>) is left to inherit from the theme unless fontFaceEA is set — forcing a Latin-only face into the East Asian slot duplicates/ghosts text in Office 365.
Example
ts
'Arial' // Arial fontInherited from
fontFaceEA?
optionalfontFaceEA?:string
Defined in: src/types/text.ts:175
East Asian font face name (<a:ea> slot), used to render CJK (Chinese/Japanese/Korean) glyphs
Set this when the East Asian font differs from fontFace. When omitted, <a:ea> inherits the theme East Asian font, which is what PowerPoint does for Latin fonts.
Example
ts
'微軟正黑體' // render East Asian glyphs with Microsoft JhengHeiInherited from
fontSize?
optionalfontSize?:number
Defined in: src/types/text.ts:180
Font size
Example
ts
12 // Font size 12Inherited from
glow?
optionalglow?:TextGlowProps
Defined in: src/types/text.ts:420
Inherited from
grayscale?
optionalgrayscale?:boolean
Defined in: src/types/media.ts:217
Recolor the image to grayscale (<a:grayscl/>)
- maps every pixel to its luminance grey (MS-PPT > Format Picture > Picture Color > Recolor > Grayscale)
- the cheapest recolour: no payload
- mutually exclusive with the other recolour modes (
duotone/biLevel/clrChange); if several are set, the first present in document order wins on read-back
Default
ts
falseExample
ts
true // desaturate the imageInherited from
guides?
optionalguides?:ShapeGuide[]
Defined in: src/types/shape.ts:158
Geometry guides (<a:gdLst>) for a custGeom shape — named construction formulas that connection sites / adjust handles can reference. Advanced: each formula is emitted verbatim.
Example
ts
[{ name: 'w2', formula: 'val 10800' }]Inherited from
h?
optionalh?:Coord
Defined in: src/types/core.ts:49
Height
- inches or percentage
Examples
ts
10.25 // height in inchests
'75%' // height as percentage of slide sizeInherited from
hasBandedColumns?
optionalhasBandedColumns?:boolean
Defined in: src/types/slide.ts:83
hasBandedRows?
optionalhasBandedRows?:boolean
Defined in: src/types/slide.ts:82
hasFirstColumn?
optionalhasFirstColumn?:boolean
Defined in: src/types/slide.ts:84
hasFooter?
optionalhasFooter?:boolean
Defined in: src/types/slide.ts:81
hasHeader?
optionalhasHeader?:boolean
Defined in: src/types/slide.ts:80
hasLastColumn?
optionalhasLastColumn?:boolean
Defined in: src/types/slide.ts:85
highlight?
optionalhighlight?:string
Defined in: src/types/text.ts:185
Text highlight color (hex format)
Example
ts
'FFFF00' // yellowInherited from
horzOverflow?
optionalhorzOverflow?:"clip"|"overflow"
Defined in: src/types/table.ts:265
What happens to a single glyph wider than the cell's text width (a:tcPr/@horzOverflow).
'clip'(PowerPoint's default) cuts the glyph off at the cell edge'overflow'lets it draw past the edge, over whatever is beside it
This is not a text-wrap switch, despite the name. Lines always wrap to the column width; only an individual character too wide to fit on a line by itself is affected, so it matters for oversized display type, wide CJK/emoji glyphs, and icon fonts in a narrow column. PowerPoint has no per-cell no-wrap at all — wrap="none" on a cell's a:bodyPr is discarded on the next save (probe: test/read/fixtures/authoring/probe-table-cell-wrap.ps1). 'clip' is written as asked but is the schema default, so PowerPoint drops the attribute again the first time it saves the deck — the visible result is the same either way, and leaving this unset emits nothing at all.
Default
ts
(unset — PowerPoint clips)Example
ts
'overflow' // a 60pt glyph in a 0.5in column draws whole instead of being cutInherited from
hyperlink?
optionalhyperlink?:HyperlinkProps
Defined in: src/types/media.ts:45
Add hyperlink to shape
Example
ts
hyperlink: { url: "https://example.com", tooltip: "Visit Homepage" },Inherited from
indentLevel?
optionalindentLevel?:number
Defined in: src/types/text.ts:422
Inherited from
isTextBox?
optionalisTextBox?:boolean
Defined in: src/types/text.ts:423
Inherited from
italic?
optionalitalic?:boolean
Defined in: src/types/text.ts:190
italic style
Default
ts
falseInherited from
lang?
optionallang?:string
Defined in: src/types/text.ts:197
language
- ISO 639-1 standard language code
Default
ts
'en-US' // english USExample
ts
'fr-CA' // french CanadianInherited from
line?
optionalline?:ShapeLineProps
Defined in: src/types/media.ts:53
Border line (<a:ln> outline) drawn around the image
- same options as a shape outline; a picture supports a single outline, not per-side borders
- MS-PPT: Format Picture > Line
Examples
ts
{ color: '0088CC', width: 2 } // 2pt blue borderts
{ color: '666666', width: 1, dashType: 'dash' } // dashed gray borderInherited from
lineSpacing?
optionallineSpacing?:number
Defined in: src/types/text.ts:430
Line spacing (pt)
- PowerPoint: Paragraph > Indents and Spacing > Line Spacing: > "Exactly"
Example
ts
28 // 28ptInherited from
lineSpacingMultiple?
optionallineSpacingMultiple?:number
Defined in: src/types/text.ts:437
line spacing multiple (percent)
- range: 0.0-9.99
- PowerPoint: Paragraph > Indents and Spacing > Line Spacing: > "Multiple"
Example
ts
1.5 // 1.5X line spacingInherited from
TextPropsOptions.lineSpacingMultiple
margin?
optionalmargin?:Margin
Defined in: src/types/slide.ts:77
Cell margin (inches)
Default
ts
0Overrides
objectLock?
optionalobjectLock?:ObjectLockProps
Defined in: src/types/object.ts:54
Object lock flags (DrawingML a:spLocks / a:picLocks / a:graphicFrameLocks)
- restrict how the object can be manipulated in PowerPoint (e.g. prevent moving, resizing, or grouping)
- each flag maps 1:1 to the OOXML attribute of the same name; only flags set to
trueare emitted - PowerPoint UI: Selection Pane / right-click protections (most locks are honored at edit time, not as a password)
- flags only apply to the object types that support them (see each flag); flags set on an unsupported object type are ignored with a console warning
Examples
ts
{ noMove: true, noResize: true } // pin an object in placets
{ noGrp: true } // exclude from groupingInherited from
objectName?
optionalobjectName?:string
Defined in: src/types/object.ts:36
Object name
- used instead of default "Object N" name
- PowerPoint: Home > Arrange > Selection Pane...
Default
ts
'Object 1'Example
ts
'Antenna Design 9'Inherited from
outerBorder?
optionalouterBorder?:BorderProps| [BorderProps?,BorderProps?,BorderProps?,BorderProps?]
Defined in: src/types/slide.ts:93
Table perimeter border. addTableDefinition normalizes it to a 4-tuple (TRBL, sides left unset as undefined) before it reaches the emitter, so the serializer never has to re-handle the single-BorderProps form.
outline?
optionaloutline?:object
Defined in: src/types/text.ts:449
color
color:
string
size
size:
number
Inherited from
paraIndent?
optionalparaIndent?:number|"inherit"
Defined in: src/types/text.ts:214
First-line indent (points) — a:pPr/@indent, the offset of the paragraph's FIRST line from paraMarginLeft. Negative hangs the first line to the left of the body, which is what a bulleted paragraph does; positive indents it to the right, the "first line indented" prose form. PowerPoint: Paragraph > Indentation > Special.
'inherit'writes no@indentat all, so the paragraph takes whatever its list style (a:lstStyle→ placeholder → layout → master) sets — the same third state bullet spells, on the attribute beside it- omitting the option keeps the bullet-derived default: a drawn bullet hangs the first line by its margin,
bullet: falsewritesindent="0",bullet: 'inherit'writes nothing - a value here overrides all of those, in every bullet state
Examples
ts
-18 // hang the first line 18pt left of the body textts
18 // indent the first line 18pt, prose stylets
'inherit' // keep the list style's indent, even on a bulleted paragraphInherited from
paraMarginLeft?
optionalparaMarginLeft?:number|"inherit"
Defined in: src/types/text.ts:229
Left margin of the paragraph (points) — a:pPr/@marL, where the paragraph's body text starts. This is the paragraph's own margin, not the text frame's internal padding (margin) and not the discrete outline level (indentLevel, which writes a:p/@lvl). PowerPoint: Paragraph > Indentation > Before text.
'inherit'writes no@marLat all, so the paragraph takes whatever its list style (a:lstStyle→ placeholder → layout → master) sets — the third state that omission cannot spell, since omitting it writes the bullet-derived default- omitting the option keeps that default: a drawn bullet writes its own margin (see
bullet.indent),bullet: falsewritesmarL="0",bullet: 'inherit'writes nothing - a value here overrides all of those, in every bullet state
Examples
ts
36 // body text starts 36pt (0.5in) from the frame's text edgets
'inherit' // keep the list style's margin, even on a bulleted paragraphInherited from
paraSpaceAfter?
optionalparaSpaceAfter?:number
Defined in: src/types/text.ts:450
Inherited from
TextPropsOptions.paraSpaceAfter
paraSpaceBefore?
optionalparaSpaceBefore?:number
Defined in: src/types/text.ts:451
Inherited from
TextPropsOptions.paraSpaceBefore
path?
optionalpath?:string
Defined in: src/types/core.ts:69
URL or relative path
Example
ts
'https://onedrives.com/myimg.png` // retrieve image via URL
@example '/home/user/images/myimg.png` // retrieve image via local pathInherited from
placeholder?
optionalplaceholder?:string
Defined in: src/types/media.ts:62
Name of a picture placeholder defined on the slide layout/master to populate
- when it matches a layout/master placeholder, the image inherits that placeholder's position and size for any of
x/y/w/hnot supplied explicitly; explicit values always win
Example
ts
'picph'See
https://docs.microsoft.com/en-us/office/vba/api/powerpoint.ppplaceholdertype
Inherited from
points?
optionalpoints?:GeometryPoint[]
Defined in: src/types/media.ts:92
Clip the image to an arbitrary freeform path (custGeom)
- takes precedence over
shape/roundingwhen present - coordinates are authored in the image's own inch/EMU space (0..w, 0..h), not slide-relative and not normalized
- supports the same path DSL as freeform shapes:
moveTo/lnTo/cubicBezTo/quadBezTo/arcTo/close
Example
ts
[{ x: 1, y: 0 }, { x: 2, y: 2 }, { x: 0, y: 2 }, { close: true }] // triangular photo clipInherited from
rectRadius?
optionalrectRadius?:number
Defined in: src/types/media.ts:98
Rounded rectangle corner radius (inches) when shape: 'roundRect'
- values: 0.0 to 1.0
Default
ts
0Inherited from
rotate?
optionalrotate?:number
Defined in: src/types/media.ts:69
Image rotation (degrees)
- range: -360 to 360
Default
ts
0Example
ts
180 // rotate image 180 degreesInherited from
rounding?
optionalrounding?:boolean
Defined in: src/types/media.ts:75
Enable image rounding (clips the image to a circle/ellipse)
- shorthand for
shape: 'ellipse';shapetakes precedence when both are set
Default
ts
falseInherited from
rowH?
optionalrowH?:number|number[]
Defined in: src/types/slide.ts:79
rowspan?
optionalrowspan?:number
Defined in: src/types/table.ts:275
Cell rowspan
Inherited from
rtl?
optionalrtl?:boolean
Defined in: src/types/slide.ts:86
rtlMode?
optionalrtlMode?:boolean
Defined in: src/types/text.ts:481
Whether to enable right-to-left mode
Default
ts
falseInherited from
shadow?
optionalshadow?:ShadowProps
Defined in: src/types/media.ts:112
Shadow Props
- MS-PPT > Format Picture > Shadow
Example
ts
{ type: 'outer', color: '000000', transparency: 50, blur: 20, offset: 20, angle: 270 }Inherited from
shape?
optionalshape?:SHAPE_NAME
Defined in: src/types/media.ts:84
Clip the image to a preset shape geometry ("fit image into shape")
- accepts any PowerPoint preset geometry name, e.g.
'roundRect','hexagon','ellipse' - combine with
sizing: { type: 'cover', ... }for an aspect-correct fill of the shape box - use
rectRadiusto set the corner radius for'roundRect'
Examples
ts
'roundRect' // rounded-rectangle avatarts
'hexagon' // hexagonal photoInherited from
shapeAdjust?
optionalshapeAdjust?:ShapeAdjustValue|ShapeAdjustValue[]
Defined in: src/types/media.ts:105
Preset-geometry adjustment handles (<a:avLst> guides) for the clip shape.
- tune adjustment handles that lack a dedicated option, e.g. chevron point depth
- accepts a single guide or an array; each
valueis a0.0–1.0fraction (see ShapeAdjustValue)
Example
ts
{ name: 'adj', value: 0.25 }Inherited from
sizing?
optionalsizing?:object
Defined in: src/types/media.ts:140
Image sizing options
- omit entirely for the default: a raster fills the
w×hbox, a vector (SVG) source is letterboxed to its own aspect ratio inside that box
h?
optionalh?:Coord
Image height
- inches or percentage
- defaults to the picture's own
h
Examples
ts
10.25 // position in inchests
'75%' // position as percentage of slide sizetype
type:
"contain"|"crop"|"cover"|"stretch"
Sizing type
cover/containfit the image into thew×hbox using the image's natural aspect ratio — read from the embedded PNG/JPEG/GIF/BMP/WebP header, or from an SVG'swidth/heightorviewBox. If the natural size cannot be determined (an unrecognized format, or an SVG carrying neither) the displayedw/hratio is used as a fallback and a warning is logged.cropcuts a window out of the displayed image using thex/y/w/hoffsets.stretchfills the box regardless of aspect ratio. This is what a raster does anyway; name it explicitly to opt a vector source out of its aspect-correct default.
w?
optionalw?:Coord
Image width
- inches or percentage
- defaults to the picture's own
w, which is whatcover/containalmost always want
Examples
ts
10.25 // position in inchests
'75%' // position as percentage of slide sizex?
optionalx?:Coord
Offset from left to crop image
croponly- inches or percentage
Examples
ts
10.25 // position in inchests
'75%' // position as percentage of slide sizey?
optionaly?:Coord
Offset from top to crop image
croponly- inches or percentage
Examples
ts
10.25 // position in inchests
'75%' // position as percentage of slide sizeInherited from
softBreakBefore?
optionalsoftBreakBefore?:boolean
Defined in: src/types/text.ts:234
Add a soft line-break (shift+enter) before line text content
Default
ts
falseInherited from
TableCellProps.softBreakBefore
strike?
optionalstrike?:boolean|"noStrike"|"sngStrike"|"dblStrike"
Defined in: src/types/text.ts:496
Strikethrough (a:rPr/@strike, ST_TextStrikeType — ECMA-376 §20.1.10.78)
trueis'sngStrike';'dblStrike'is the double rule'noStrike'is the explicit off: it writesstrike="noStrike", which overrides a strikethrough the run would otherwise inherit from its list style, placeholder, layout or masterfalse, like leaving the option out, writes no attribute at all and so states nothing — the run keeps whatever it inherits. This matchesbold/italic, whose falsy arm is likewise an omission; reach for'noStrike'when the intent is "not struck" rather than "unspecified"
Default
ts
(unset) inheritInherited from
subscript?
optionalsubscript?:boolean
Defined in: src/types/text.ts:497
Inherited from
superscript?
optionalsuperscript?:boolean
Defined in: src/types/text.ts:498
Inherited from
svg?
optionalsvg?:string
Defined in: src/types/media.ts:247
Raw SVG markup to embed as the image source
- convenience for
data: 'data:image/svg+xml;base64,...'; ts-pptx encodes it for you - ignored when
dataorpathis also provided
Example
ts
'<svg viewBox="0 0 24 24">...</svg>'Inherited from
tableFill?
optionaltableFill?:ShapeFillProps
Defined in: src/types/slide.ts:95
Table background (a:tblPr fill), as distinct from fill, which is stamped onto each cell.
tableStyle?
optionaltableStyle?:TableStyle
Defined in: src/types/slide.ts:87
tabStops?
optionaltabStops?:object[]
Defined in: src/types/text.ts:240
tab stops
- PowerPoint: Paragraph > Tabs > Tab stop position
alignment?
optionalalignment?:"r"|"ctr"|"l"|"dec"
position
position:
number
Example
ts
[{ position:1 }, { position:3 }] // Set first tab stop to 1 inch, set second tab stop to 3 inchesInherited from
textDirection?
optionaltextDirection?:"horz"|"vert"|"vert270"|"wordArtVert"
Defined in: src/types/text.ts:249
text direction horz = horizontal vert = rotate 90^ vert270 = rotate 270^ wordArtVert = stacked
Default
ts
'horz'Inherited from
textWarp?
optionaltextWarp?:string
Defined in: src/types/text.ts:36
Preset text warp / WordArt shape (<a:bodyPr><a:prstTxWarp prst="..">), which bends the text along a preset path (arch, circle, wave, …). The value is an OOXML ST_TextShapeType preset name.
Examples
ts
'textArchUp' // bend text along an upward arch (e.g. a label following a ring/arc)ts
'textCircle'Inherited from
transparency?
optionaltransparency?:number
Defined in: src/types/media.ts:193
Transparency (percent)
- MS-PPT > Format Picture > Picture > Picture Transparency > Transparency
- range: 0-100
Default
ts
0Example
ts
25 // 25% transparentInherited from
underline?
optionalunderline?:object
Defined in: src/types/text.ts:267
underline properties
- PowerPoint: Font > Color & Underline > Underline Style/Underline Color
styleis the fullST_TextUnderlineTypeenumeration (ECMA-376 §20.1.10.81)'none'is the explicit off: it writesa:rPr/@u="none", which overrides an underline the run would otherwise inherit from its list style, placeholder, layout or master. Omitting the option instead states nothing and lets that inheritance stand — the two are different facts, not two spellings of one.
color?
optionalcolor?:string
style?
optionalstyle?:"none"|"dash"|"dashHeavy"|"dashLong"|"dashLongHeavy"|"dbl"|"dotDash"|"dotDashHeavy"|"dotDotDash"|"dotDotDashHeavy"|"dotted"|"dottedHeavy"|"heavy"|"sng"|"wavy"|"wavyDbl"|"wavyHeavy"|"words"
Default
ts
(unset) inheritInherited from
valign?
optionalvalign?:VAlign
Defined in: src/types/text.ts:293
vertical alignment
Default
ts
'top'Inherited from
vert?
optionalvert?:"horz"|"vert"|"vert270"|"wordArtVert"|"eaVert"|"mongolianVert"|"wordArtVertRtl"
Defined in: src/types/text.ts:509
Advanced/legacy escape hatch for the full ST_TextVerticalType range (e.g. eaVert, mongolianVert, wordArtVert). Prefer TextBaseProps.textDirection for the common cases; both map to a:bodyPr@vert.
Inherited from
w?
optionalw?:Coord
Defined in: src/types/core.ts:56
Width
- inches or percentage
Examples
ts
10.25 // width in inchests
'75%' // width as percentage of slide sizeInherited from
wrap?
optionalwrap?:boolean
Defined in: src/types/text.ts:514
Text wrap
Default
ts
trueInherited from
x?
optionalx?:Coord
Defined in: src/types/core.ts:35
Horizontal position
- inches or percentage
Examples
ts
10.25 // position in inchests
'75%' // position as percentage of slide sizeInherited from
y?
optionaly?:Coord
Defined in: src/types/core.ts:42
Vertical position
- inches or percentage
Examples
ts
10.25 // position in inchests
'75%' // position as percentage of slide size