Modules@robinpath/pptx
pptx

@robinpath/pptx

0.1.1Node.jsPublic

PowerPoint presentation (.pptx) creation for RobinPath

Pptx

PowerPoint presentation (.pptx) creation — slides, text boxes, images, tables, charts, shapes, speaker notes, slide masters, and more. Zero npm dependencies.

Package: @robinpath/pptx | Category: Document | Type: External

Authentication

No authentication required. All functions are available immediately.

Use Cases

Use the pptx module when you need to:

  • Create a new presentation -- Use pptx.createSlides to start a new PowerPoint
  • Add slides -- Use pptx.addSlide to add slides with titles and backgrounds
  • Add text -- Use pptx.addSlideText or pptx.addSlideMultiText for text boxes
  • Add images -- Use pptx.addSlideImage to embed images on slides
  • Add tables -- Use pptx.addSlideTable for data tables with styling
  • Add charts -- Use pptx.addSlideChart for bar, line, pie, and area charts
  • Add shapes -- Use pptx.addSlideShape for rectangles, ellipses, lines
  • Add speaker notes -- Use pptx.addSlideNotes for presenter notes
  • Define master templates -- Use pptx.defineSlideMaster for reusable layouts
  • Save the presentation -- Use pptx.saveSlides to write the .pptx file

Quick Reference

FunctionDescriptionReturns
createSlidesCreate a new PowerPoint presentationstring
addSlideAdd a slide with optional title/subtitlenumber
addSlideTextAdd a text box to a slideboolean
addSlideImageAdd an image to a slideboolean
addSlideTableAdd a data table to a slideboolean
addSlideChartAdd a chart to a slideboolean
addSlideShapeAdd a shape to a slideboolean
addSlideNotesAdd speaker notes to a slideboolean
addSlideMultiTextAdd rich text with mixed formattingboolean
setSlideNumberAdd a slide numberboolean
defineSlideMasterDefine a reusable slide master templateboolean
addSlideFromMasterCreate a slide from a master templatenumber
saveSlidesSave the presentation to a .pptx fileObject
setSheetPrintConfigure print layout settingsboolean
groupRowsGroup rows into collapsible outline groupsboolean

Functions

createSlides

Create a new PowerPoint presentation

Module: pptx | Returns: string -- Presentation ID

pptx.createSlides "deck" { "title": "Q4 Report" }
ParameterTypeRequiredDescription
idstringNoPresentation ID
optionsobjectNo{title, author, layout}

addSlide

Add a slide with optional title/subtitle and background

Module: pptx | Returns: number -- Slide index

pptx.addSlide $ppt { "title": "Overview", "subtitle": "Q4 2026", "backgroundColor": "#1a1a2e" }
ParameterTypeRequiredDescription
pptIdstringYesPresentation ID
optionsobjectNo{title, subtitle, titleSize, backgroundColor}

addSlideText

Add a text box to a slide with full formatting

Module: pptx | Returns: boolean -- true

pptx.addSlideText $ppt 0 "Revenue: +23%" { "x": 1, "y": 3, "fontSize": 24, "bold": true, "color": "#27ae60" }
ParameterTypeRequiredDescription
pptIdstringYesPresentation ID
slideIndexnumberYesSlide index
textstringYesText content
optionsobjectNo{x, y, w, h, fontSize, font, bold, italic, color, alignment, fillColor, bullet, lineSpacing}

addSlideImage

Add an image to a slide with positioning

Module: pptx | Returns: boolean -- true

pptx.addSlideImage $ppt 0 "./chart.png" { "x": 1, "y": 2, "w": 6, "h": 4 }
ParameterTypeRequiredDescription
pptIdstringYesPresentation ID
slideIndexnumberYesSlide index
imagePathstringYesPath to image
optionsobjectNo{x, y, w, h, rounding, hyperlink}

addSlideTable

Add a data table to a slide with styling

Module: pptx | Returns: boolean -- true

pptx.addSlideTable $ppt 1 $data { "headerStyle": { "fillColor": "#2196F3" }, "alternateRows": true }
ParameterTypeRequiredDescription
pptIdstringYesPresentation ID
slideIndexnumberYesSlide index
dataarrayYesArray of objects or arrays
optionsobjectNo{x, y, w, headerStyle, cellStyle, columnWidths, alternateRows, borders}

addSlideChart

Add a chart to a slide

Module: pptx | Returns: boolean -- true

pptx.addSlideChart $ppt 2 $chartData { "type": "bar", "title": "Sales by Region" }
ParameterTypeRequiredDescription
pptIdstringYesPresentation ID
slideIndexnumberYesSlide index
chartDataarrayYesChart data series [{name, labels, values}]
optionsobjectNo{type: bar/line/pie/doughnut/area, x, y, w, h, title, legend, showValues}

addSlideShape

Add a shape to a slide

Module: pptx | Returns: boolean -- true

pptx.addSlideShape $ppt 0 { "shape": "rect", "x": 0, "y": 0, "w": 10, "h": 0.5, "fillColor": "#2196F3" }
ParameterTypeRequiredDescription
pptIdstringYesPresentation ID
slideIndexnumberYesSlide index
optionsobjectNo{shape: rect/ellipse/roundRect/line/triangle, x, y, w, h, fillColor, lineColor, lineWidth}

addSlideNotes

Add speaker notes to a slide

Module: pptx | Returns: boolean -- true

pptx.addSlideNotes $ppt 0 "Remember to mention Q4 targets"
ParameterTypeRequiredDescription
pptIdstringYesPresentation ID
slideIndexnumberYesSlide index
textstringYesSpeaker notes text

addSlideMultiText

Add rich text with mixed formatting (bold/italic/color) in one text box

Module: pptx | Returns: boolean -- true

pptx.addSlideMultiText $ppt 0 [{ "text": "Revenue: ", "bold": true }, { "text": "+23%", "color": "#27ae60", "bold": true }] { "x": 1, "y": 3 }
ParameterTypeRequiredDescription
pptIdstringYesPresentation ID
slideIndexnumberYesSlide index
runsarrayYesArray of text runs [{text, bold, italic, color, fontSize, font, hyperlink}]
optionsobjectNo{x, y, w, h, alignment, fillColor, lineSpacing, margin}

setSlideNumber

Add a slide number to a slide

Module: pptx | Returns: boolean -- true

pptx.setSlideNumber $ppt 0 { "x": 9.5, "y": "95%", "color": "#888888", "fontSize": 10 }
ParameterTypeRequiredDescription
pptIdstringYesPresentation ID
slideIndexnumberYesSlide index
optionsobjectNo{x, y, color, fontSize}

defineSlideMaster

Define a reusable slide master template with logo, background, and placeholders

Module: pptx | Returns: boolean -- true

pptx.defineSlideMaster $ppt "BRAND" { "bgColor": "#FFFFFF", "objects": [{ "rect": { "x": 0, "y": 0, "w": "100%", "h": 0.5, "fillColor": "#003366" } }] }
ParameterTypeRequiredDescription
pptIdstringYesPresentation ID
namestringYesMaster template name
optionsobjectNo{background, bgColor, margin, slideNumber, objects}

addSlideFromMaster

Create a new slide from a defined master template

Module: pptx | Returns: number -- Slide index

pptx.addSlideFromMaster $ppt "BRAND" {}
ParameterTypeRequiredDescription
pptIdstringYesPresentation ID
masterNamestringYesMaster template name
optionsobjectNo{backgroundColor}

saveSlides

Save the presentation to a .pptx file

Module: pptx | Returns: Object -- {path}

pptx.saveSlides $ppt "./presentation.pptx"
ParameterTypeRequiredDescription
pptIdstringYesPresentation ID
filePathstringYesOutput .pptx path

setSheetPrint

Configure print layout: paper size, orientation, print area, margins

Module: pptx | Returns: boolean -- true

pptx.setSheetPrint $wb { "sheet": "Sheet1", "paperSize": 9, "orientation": "landscape", "printArea": "A1:F20" }
ParameterTypeRequiredDescription
wbIdstringYesWorkbook ID
optionsobjectYes{sheet, paperSize, orientation, fitToPage, fitToWidth, fitToHeight, printArea, margins, printTitlesRow}

groupRows

Group rows (or columns) into collapsible outline groups

Module: pptx | Returns: boolean -- true

pptx.groupRows $wb 2 10 { "sheet": "Sheet1", "collapsed": false }
ParameterTypeRequiredDescription
wbIdstringYesWorkbook ID
startnumberYesStart row number
endnumberYesEnd row number
optionsobjectNo{sheet, level, collapsed, columns: {start, end, level}}

Error Handling

All functions throw on failure. Common errors:

ErrorCause
Presentation not foundInvalid presentation ID
Invalid slide indexSlide index out of range
Image not foundImage file does not exist at path
@desc "Create presentation safely"
do
  set $ppt as pptx.createSlides "demo"
  if $ppt != null
    pptx.addSlide $ppt { "title": "Hello" }
    pptx.saveSlides $ppt "./demo.pptx"
    print "Saved"
  end
enddo

Recipes

1. Create a full business presentation

Build a complete deck with title slide, content, chart, and table.

@desc "Generate Q4 sales presentation"
do
  set $ppt as pptx.createSlides "q4-deck" { "title": "Q4 Sales Review", "author": "Sales Team" }

  set $s0 as pptx.addSlide $ppt { "title": "Q4 Sales Review", "subtitle": "October - December 2026", "backgroundColor": "#1a1a2e" }

  set $s1 as pptx.addSlide $ppt { "title": "Revenue Summary" }
  set $data as [
    { "Region": "North", "Revenue": "$1.2M", "Growth": "+15%" },
    { "Region": "South", "Revenue": "$890K", "Growth": "+8%" },
    { "Region": "West", "Revenue": "$1.5M", "Growth": "+22%" }
  ]
  pptx.addSlideTable $ppt $s1 $data { "x": 0.5, "y": 1.5, "w": 9, "headerStyle": { "fillColor": "#2196F3", "fontColor": "#FFFFFF" }, "alternateRows": true }

  set $s2 as pptx.addSlide $ppt { "title": "Growth Chart" }
  set $chartData as [{ "name": "Revenue", "labels": ["Q1", "Q2", "Q3", "Q4"], "values": [800, 950, 1100, 1500] }]
  pptx.addSlideChart $ppt $s2 $chartData { "type": "bar", "x": 1, "y": 1.5, "w": 8, "h": 5, "title": "Quarterly Revenue ($K)" }

  pptx.addSlideNotes $ppt $s2 "Highlight the Q4 spike driven by new product launch"

  pptx.saveSlides $ppt "./q4-sales.pptx"
  print "Presentation saved to q4-sales.pptx"
enddo

2. Branded presentation with master template

Define a master layout and create consistent slides.

@desc "Create branded company deck"
do
  set $ppt as pptx.createSlides "branded"

  pptx.defineSlideMaster $ppt "CORP" {
    "bgColor": "#FFFFFF",
    "objects": [
      { "rect": { "x": 0, "y": 0, "w": "100%", "h": 0.5, "fillColor": "#003366" } },
      { "rect": { "x": 0, "y": 7, "w": "100%", "h": 0.5, "fillColor": "#003366" } }
    ]
  }

  set $s1 as pptx.addSlideFromMaster $ppt "CORP" {}
  pptx.addSlideText $ppt $s1 "Company Overview" { "x": 1, "y": 1, "fontSize": 28, "bold": true, "color": "#003366" }
  pptx.addSlideText $ppt $s1 "Building the future of automation" { "x": 1, "y": 2, "fontSize": 16, "color": "#666666" }
  pptx.setSlideNumber $ppt $s1 { "x": 9.5, "y": "95%", "fontSize": 10, "color": "#888888" }

  set $s2 as pptx.addSlideFromMaster $ppt "CORP" {}
  pptx.addSlideText $ppt $s2 "Our Mission" { "x": 1, "y": 1, "fontSize": 24, "bold": true }
  pptx.addSlideMultiText $ppt $s2 [
    { "text": "We believe in ", "fontSize": 14 },
    { "text": "simplicity", "bold": true, "color": "#2196F3", "fontSize": 14 },
    { "text": " and ", "fontSize": 14 },
    { "text": "power", "bold": true, "color": "#27ae60", "fontSize": 14 }
  ] { "x": 1, "y": 2.5, "w": 8 }

  pptx.saveSlides $ppt "./branded-deck.pptx"
  print "Branded presentation saved"
enddo

3. Slide with shapes and visuals

Add shapes for visual design elements.

@desc "Create a visually styled slide"
do
  set $ppt as pptx.createSlides "visual"
  set $s as pptx.addSlide $ppt { "backgroundColor": "#f5f5f5" }

  pptx.addSlideShape $ppt $s { "shape": "rect", "x": 0.5, "y": 0.5, "w": 4, "h": 3, "fillColor": "#2196F3" }
  pptx.addSlideText $ppt $s "Feature 1" { "x": 0.8, "y": 1.5, "fontSize": 20, "bold": true, "color": "#FFFFFF" }

  pptx.addSlideShape $ppt $s { "shape": "roundRect", "x": 5.5, "y": 0.5, "w": 4, "h": 3, "fillColor": "#27ae60" }
  pptx.addSlideText $ppt $s "Feature 2" { "x": 5.8, "y": 1.5, "fontSize": 20, "bold": true, "color": "#FFFFFF" }

  pptx.addSlideShape $ppt $s { "shape": "ellipse", "x": 3, "y": 4, "w": 4, "h": 2.5, "fillColor": "#FF9800" }
  pptx.addSlideText $ppt $s "Feature 3" { "x": 3.3, "y": 4.8, "fontSize": 20, "bold": true, "color": "#FFFFFF" }

  pptx.saveSlides $ppt "./visual-deck.pptx"
  print "Visual deck saved"
enddo

Related Modules

  • docx -- Word document creation
  • excel -- Excel spreadsheet creation
  • pdf -- PDF document generation
  • chart -- Chart data generation

Versions (1)

VersionTagPublished
0.1.1latest1 months ago
Install
$ robinpath add @robinpath/pptx

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.1
LicenseMIT
Unpacked Size17.6 KB
Versions1
Weekly Downloads21
Total Downloads21
Stars0
Last Publish1 months ago
Created1 months ago

Category

productivity