Appearance
Interface: ObjectOptions ​
Reusable optional data/path fields. Use DataOrPathRequiredProps for APIs that require at least one source.
Extends ​
Properties ​
adjustHandles? ​
optionaladjustHandles?:ShapeAdjustHandle[]
Adjust handles (<a:ahLst>) for a custGeom shape — draggable handles (XY or polar), optionally bound to guides via gdRef*.
Inherited from ​
align? ​
optionalalign?:HAlign
Horizontal alignment
Default ​
ts
'left'Inherited from ​
altText? ​
optionalaltText?:string
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..."
- omitted, the picture's
descris empty, as PowerPoint writes it; the source path or URL is never used
Inherited from ​
anchorCtr? ​
optionalanchorCtr?:boolean
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]
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
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
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
baseline? ​
optionalbaseline?:number
Baseline shift, as TextPropsOptions.baseline takes it on a text run: above zero raises the text, below zero lowers it. On a cell it applies to every run that states none.
Inherited from ​
biLevel? ​
optionalbiLevel?:object
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
Bold style
Default ​
ts
falseInherited from ​
border? ​
optionalborder?:StrokeProps| [StrokeProps|null,StrokeProps|null,StrokeProps|null,StrokeProps|null]
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. A null entry is a hole: that edge is left out of a:tcPr and keeps inheriting from the table style, while { type: 'none' } writes an explicit no-line that overrides it. For the two corner-to-corner rules see diagonal; for the table's outside edge see TableProps.outerBorder.
Inherited from ​
breakLine? ​
optionalbreakLine?:boolean
Add a line-break
Default ​
ts
falseInherited from ​
bullet? ​
optionalbullet?:boolean|"inherit"|TextBulletProps
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.
When a shape's text is an array of runs, state this on the opening run only. A run that draws a bullet starts a new paragraph by itself, so repeating it — the placement that align requires — turns one three-run paragraph into three one-run paragraphs. A paragraph takes its properties from its first run.
Default ​
ts
falseInherited from ​
caps? ​
optionalcaps?:"small"|"all"|"none"
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
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
Character spacing
Inherited from ​
clrChange? ​
optionalclrChange?:object
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
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
Cell colspan
Inherited from ​
columns? ​
optionalcolumns?:number
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
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[]
connectionSites? ​
optionalconnectionSites?:ShapeConnectionSite[]
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
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
cy? ​
optionalcy?:Coord
data? ​
optionaldata?:string
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
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
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?:FillOption
Shape fill color properties, or a bare Color as shorthand for a solid fill (FillOption).
Examples ​
ts
'FF0000' // hex color (red), shorthand for { color:'FF0000' }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"
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. With no metrics registered at all it is a silent no-op (the cell keeps its authored size); once any face is registered, an unregistered face is estimated and warns once per write.
- 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
Flip horizontally?
Default ​
ts
falseInherited from ​
flipV? ​
optionalflipV?:boolean
Flip vertical?
Default ​
ts
falseInherited from ​
fontFace? ​
optionalfontFace?:string
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
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
Font size
Example ​
ts
12 // Font size 12Inherited from ​
glow? ​
optionalglow?:TextGlowProps
Inherited from ​
grayscale? ​
optionalgrayscale?:boolean
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[]
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
Height
- inches or percentage
Examples ​
ts
10.25 // height in inchests
'75%' // height as percentage of slide sizeInherited from ​
hasBandedColumns? ​
optionalhasBandedColumns?:boolean
hasBandedRows? ​
optionalhasBandedRows?:boolean
hasFirstColumn? ​
optionalhasFirstColumn?:boolean
hasFooter? ​
optionalhasFooter?:boolean
hasHeader? ​
optionalhasHeader?:boolean
hasLastColumn? ​
optionalhasLastColumn?:boolean
highlight? ​
optionalhighlight?:string
Text highlight color (hex format)
Example ​
ts
'FFFF00' // yellowInherited from ​
horzOverflow? ​
optionalhorzOverflow?:"clip"|"overflow"
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
Add hyperlink to shape
Example ​
ts
hyperlink: { url: "https://example.com", tooltip: "Visit Homepage" },Inherited from ​
indentLevel? ​
optionalindentLevel?:number
Outline level of the paragraph a run starts, as TextPropsOptions.indentLevel.
Inherited from ​
isTextBox? ​
optionalisTextBox?:boolean
Inherited from ​
italic? ​
optionalitalic?:boolean
italic style
Default ​
ts
falseInherited from ​
lang? ​
optionallang?:string
language
- ISO 639-1 standard language code
Default ​
ts
'en-US' // english USExample ​
ts
'fr-CA' // french CanadianInherited from ​
line? ​
optionalline?:ShapeLineProps
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
Line spacing in points, as TextPropsOptions.lineSpacing.
Inherited from ​
lineSpacingMultiple? ​
optionallineSpacingMultiple?:number
Line spacing as a multiple of single spacing, as TextPropsOptions.lineSpacingMultiple.
Inherited from ​
TableCellProps.lineSpacingMultiple
margin? ​
optionalmargin?:Margin
Cell margin (inches), in [top, right, bottom, left] order
Default ​
ts
[0.05, 0.1, 0.05, 0.1]Overrides ​
objectLock? ​
optionalobjectLock?:ObjectLockProps
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
Object name
- used instead of the default name for the object's kind:
Text 1,Shape 2,Image 1and so on, numbered per kind (seedocs/reference/object-names.md) - PowerPoint: Home > Arrange > Selection Pane...
Example ​
ts
'Antenna Design 9'Inherited from ​
outerBorder? ​
optionalouterBorder?:StrokeProps| [StrokeProps?,StrokeProps?,StrokeProps?,StrokeProps?]
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
color ​
color:
string
size ​
size:
number
Inherited from ​
paraIndent? ​
optionalparaIndent?:number|"inherit"
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 paragraphRemarks ​
Read from the opening run of a paragraph, like bullet and unlike align; a value on a continuation run is ignored.
Inherited from ​
paraMarginLeft? ​
optionalparaMarginLeft?:number|"inherit"
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 paragraphRemarks ​
Read from the opening run of a paragraph, like bullet and unlike align; a value on a continuation run is ignored.
Inherited from ​
paraSpaceAfter? ​
optionalparaSpaceAfter?:number
Space after the paragraph in points, as TextPropsOptions.paraSpaceAfter.
Inherited from ​
paraSpaceBefore? ​
optionalparaSpaceBefore?:number
Space before the paragraph in points, as TextPropsOptions.paraSpaceBefore.
Inherited from ​
TableCellProps.paraSpaceBefore
path? ​
optionalpath?:string
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
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[]
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
Corner radius (inches) of the clip shape, for 'roundRect' and the other rounded presets
- resolved against the shorter side of the box and written as the preset's corner guide
- not clamped: a radius past half the shorter side is written as given, and PowerPoint draws the corner at its limit
- omitted, the preset keeps its own radius
Inherited from ​
rotate? ​
optionalrotate?:number
Image rotation (degrees)
- range: -360 to 360
Default ​
ts
0Example ​
ts
180 // rotate image 180 degreesInherited from ​
rounding? ​
optionalrounding?:boolean
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|null)[]
rowspan? ​
optionalrowspan?:number
Cell rowspan
Inherited from ​
rtl? ​
optionalrtl?:boolean
rtlMode? ​
optionalrtlMode?:boolean
Whether to enable right-to-left mode
Default ​
ts
falseInherited from ​
shadow? ​
optionalshadow?:ShadowProps
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
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[]
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
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"|"cover"|"crop"|"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
Add a soft line-break (shift+enter) before line text content
Default ​
ts
falseInherited from ​
TableCellProps.softBreakBefore
strike? ​
optionalstrike?:NonNullable<boolean|"noStrike"|"sngStrike"|"dblStrike"|undefined>
Strikethrough, as TextPropsOptions.strike takes it on a text run. On a cell it applies to every run that states none; on a run inside a cell's text, to that run.
Inherited from ​
subscript? ​
optionalsubscript?:boolean
Inherited from ​
superscript? ​
optionalsuperscript?:boolean
Inherited from ​
svg? ​
optionalsvg?:string
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?:FillOption
Table background (a:tblPr fill), as distinct from fill, which is stamped onto each cell.
tableStyle? ​
optionaltableStyle?:`{${string}}`
tabStops? ​
optionaltabStops?:object[]
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"
text direction horz = horizontal vert = rotate 90^ vert270 = rotate 270^ wordArtVert = stacked
Default ​
ts
'horz'Inherited from ​
textWarp? ​
optionaltextWarp?:"textNoShape"|"textPlain"|"textStop"|"textTriangle"|"textTriangleInverted"|"textChevron"|"textChevronInverted"|"textRingInside"|"textRingOutside"|"textArchUp"|"textArchDown"|"textCircle"|"textButton"|"textArchUpPour"|"textArchDownPour"|"textCirclePour"|"textButtonPour"|"textCurveUp"|"textCurveDown"|"textCanUp"|"textCanDown"|"textWave1"|"textWave2"|"textDoubleWave1"|"textWave4"|"textInflate"|"textDeflate"|"textInflateBottom"|"textDeflateBottom"|"textInflateTop"|"textDeflateTop"|"textDeflateInflate"|"textDeflateInflateDeflate"|"textFadeRight"|"textFadeLeft"|"textFadeUp"|"textFadeDown"|"textSlantUp"|"textSlantDown"|"textCascadeUp"|"textCascadeDown"
Preset text warp / WordArt shape (<a:bodyPr><a:prstTxWarp prst="..">), which bends the text along a preset path (arch, circle, wave, …) — the whole ST_TextShapeType set.
Examples ​
ts
'textArchUp' // bend text along an upward arch (e.g. a label following a ring/arc)ts
'textCircle'Inherited from ​
transparency? ​
optionaltransparency?:number
Transparency (percent)
- MS-PPT > Format Picture > Picture > Picture Transparency > Transparency
- range: 0-100
Default ​
ts
0Example ​
ts
25 // 25% transparentInherited from ​
underline? ​
optionalunderline?:object
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"|"words"|"sng"|"dbl"|"heavy"|"dotted"|"dottedHeavy"|"dash"|"dashHeavy"|"dashLong"|"dashLongHeavy"|"dotDash"|"dotDashHeavy"|"dotDotDash"|"dotDotDashHeavy"|"wavy"|"wavyHeavy"|"wavyDbl"
Default ​
ts
(unset) inheritInherited from ​
valign? ​
optionalvalign?:VAlign
vertical alignment
Default ​
ts
'top'Inherited from ​
vert? ​
optionalvert?:"horz"|"vert"|"vert270"|"wordArtVert"|"eaVert"|"mongolianVert"|"wordArtVertRtl"
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
Width
- inches or percentage
Examples ​
ts
10.25 // width in inchests
'75%' // width as percentage of slide sizeInherited from ​
wrap? ​
optionalwrap?:boolean
Text wrap
Default ​
ts
trueInherited from ​
x? ​
optionalx?:Coord
Horizontal position
- inches or percentage
Examples ​
ts
10.25 // position in inchests
'75%' // position as percentage of slide sizeInherited from ​
y? ​
optionaly?:Coord
Vertical position
- inches or percentage
Examples ​
ts
10.25 // position in inchests
'75%' // position as percentage of slide size