ASPOSE.SLIDES FOR NODE.JS VIA .NET · ON-PREMISES LIBRARY · NEEDS A .NET 6 RUNTIME

PowerPoint files, from Node.js.

Aspose.Slides for Node.js via .NET creates, edits, converts and renders PowerPoint and OpenDocument presentations from JavaScript. It is not a native Node addon: the npm package wraps the Aspose.Slides .NET engine and calls into it over the edge-js bridge, so a .NET 6 or later runtime has to be present on the machine. Everything else is bundled, including edge-js and the native rendering libraries for Windows, Linux and macOS, and no Microsoft Office install or display server is involved.

Download free trial Documentation Full API on trial · watermark on output
Install
npm
npm install aspose.slides.via.net
Check prerequisite
dotnet --list-runtimes
Require
const { Presentation } = require('aspose.slides.via.net');
Other platforms, same object model
RUNS ON

Windows, Linux and macOS, on Node.js with a .NET 6 or later runtime installed. The package carries its own native rendering libraries, x86 and x64 on Windows, x64 on Linux, and both Intel and Apple Silicon on macOS, and pulls in the edge-js bridge as an npm dependency. No Microsoft Office, no COM automation, no display server.

Prefer not to host it yourself? The same work is available as a hosted REST API through Aspose.Slides Cloud.

  • 189 / 82

    Shape types and chart types, each a real object that PowerPoint still recognises and lets a person edit.

  • 13 -> 12

    Presentation formats read and written, including the pre-2007 binary .ppt container and OpenDocument .odp, plus 9 further export targets.

  • 2

    Things to install: the npm package and a .NET 6 or later runtime. The edge-js bridge and the native rendering libraries ship inside the package.

  • 0

    Microsoft Office installs, COM automation and display servers needed. A headless container is enough once the .NET runtime is in it.

Five things people actually write

All examples on GitHub →

Each sample is the whole program, Node.js as shipped. Pick the job on the left.

PPTX -> PDF / HTML / TIFF JAVASCRIPT
const asposeSlides = require('aspose.slides.via.net');
const { Presentation, SaveFormat } = asposeSlides;

const pres = new Presentation("quarterly-review.pptx");

pres.save("quarterly-review.pdf", SaveFormat.Pdf);
pres.save("quarterly-review.html", SaveFormat.Html);
pres.save("quarterly-review.tiff", SaveFormat.Tiff);

pres.dispose();
One save call per target. The SaveFormat constant chooses the writer, not the file extension. Documentation →
Slide -> PNG 960 x 540 JAVASCRIPT
const asposeSlides = require('aspose.slides.via.net');
const { Presentation, ImageFormat } = asposeSlides;
const fs = require('fs');

if (!fs.existsSync("thumbs")) fs.mkdirSync("thumbs");

const pres = new Presentation("quarterly-review.pptx");

for (let i = 0; i < pres.slides.count; i++) {
    const image = pres.slides.get(i).getImageWithImageSize({ width: 960, height: 540 });
    image.save("thumbs/slide-" + (i + 1) + ".png", ImageFormat.Png);
    image.dispose();
}

pres.dispose();
getImageWithImageSize takes a plain object with width and height. Dispose each image, it holds a handle on the .NET side. Documentation →
Array -> native table JAVASCRIPT
const asposeSlides = require('aspose.slides.via.net');
const { Presentation, SaveFormat } = asposeSlides;

const rows = [
    ["Region", "Q1", "Q2"],
    ["EMEA", "412", "455"],
    ["APAC", "388", "501"]
];

const pres = new Presentation();
const slide = pres.slides.get(0);
const table = slide.shapes.addTable(50, 50, [200, 120, 120], [40, 40, 40]);

for (let r = 0; r < rows.length; r++) {
    for (let c = 0; c < rows[r].length; c++) {
        table.getCell(c, r).textFrame.text = rows[r][c];
    }
}

pres.save("regional-summary.pptx", SaveFormat.Pptx);
pres.dispose();
Cell text is set through textFrame.text. This is the route from structured data to a slide in this binding, which does not surface the chart object model. Documentation →
PPTX -> encrypted PPTX JAVASCRIPT
const asposeSlides = require('aspose.slides.via.net');
const { Presentation, SaveFormat } = asposeSlides;

const pres = new Presentation("quarterly-review.pptx");

pres.protectionManager.encrypt("open-sesame");
pres.protectionManager.setWriteProtection("editors-only");

pres.save("quarterly-review-protected.pptx", SaveFormat.Pptx);
pres.dispose();
encrypt sets the password needed to open the file, setWriteProtection the one needed to edit it. Both take effect on save. Documentation →
N decks -> 1 deck JAVASCRIPT
const asposeSlides = require('aspose.slides.via.net');
const { Presentation, SaveFormat } = asposeSlides;

const target = new Presentation("quarterly-review.pptx");
const source = new Presentation("appendix.pptx");

for (let i = 0; i < source.slides.count; i++) {
    target.slides.addClone(source.slides.get(i));
}

target.save("combined.pptx", SaveFormat.Pptx);

source.dispose();
target.dispose();
addClone brings the slide across with its layout and master, so appended slides keep the look they had. Documentation →

Browse by operation

Each operation has its own page, listing the formats it covers with a code sample for each.

What goes in, what comes out

Read in only

Other content read inplaced into a presentation rather than opened as one

  • HTML
  • PDF
  • raster image

Read onlyno writer in the API

  • PPT95

Aspose.Slides

12 formats read and written — the presentation formats this library opens and saves.

  • FODP
  • ODP
  • OTP
  • POT
  • POTM
  • POTX
  • PPS
  • PPSM
  • PPSX
  • PPT
  • PPTM
  • PPTX

Written out only

Written onlyexport targets, not presentation files

  • GIF
  • HTML
  • HTML5
  • MD
  • PDF
  • SWF
  • TIFF
  • XML
  • XPS

Slide imagesrendered from a slide

  • BMP
  • EMF
  • GIF
  • JPEG
  • PNG
  • SVG
  • TIFF

Capabilities, one line each

The Aspose.Slides object model is reachable from JavaScript, from slides, shapes, tables and text through to rendering and export, with charts the one area this binding does not surface.

File formats
  • Reads OOXML presentations
  • Writes .pptx
  • Reads legacy binary PowerPoint
  • Writes legacy binary .ppt
  • Reads OpenDocument presentations
  • Writes .odp
  • Exports to PDF
  • Imports PDF into a presentation
  • Exports slides to raster images
  • Exports to HTML
  • Extracts text / Markdown / JSON
Deployment
  • Runs entirely on the customer's own infrastructure
  • Offered as a hosted API the customer calls — through Aspose.Slides Cloud, a separate product
  • Runs without a Microsoft Office / LibreOffice installation
  • Works with no outbound network access
Document operations
  • Create from nothing
  • Open, modify, save back
  • Preserve untouched content
  • Merge or append presentations
  • Slide thumbnails
  • Create charts
Non-functional
  • Published performance numbers — one published capacity figure, no benchmark suite
  • Air-gapped install and licensing
API & language reach
  • .NET · Java / JVM · Python · C / C++
  • JavaScript / TypeScript / Node · PHP
  • Android, SharePoint and JasperReports integrations
  • Language-agnostic REST/HTTP API — through Aspose.Slides Cloud, a separate product
Ecosystem & support
  • Public API reference and guides
  • Runnable sample projects
  • Paid support and escalation

Runs where your code already runs

Where a build of this library is supported, and what each target is for.

  • Aspose.Slides for .NET

    The engine this package wraps, called directly from C#, VB.NET or F#.

    WINDOWS · LINUX · MACOS

  • Aspose.Slides for Node.js via Java

    Same language, a JVM instead of .NET. The alternative when a .NET runtime is not an option.

    WINDOWS · LINUX · MACOS

  • Aspose.Slides for Java

    Pure Java library. Needs a JVM and no .NET at all.

    WINDOWS · LINUX · MACOS

  • Aspose.Slides for Python via .NET

    The same .NET engine behind a Python API.

    WINDOWS · LINUX · MACOS

  • Aspose.Slides for C++

    Native library with no managed runtime to install alongside it.

    WINDOWS · LINUX · MACOS

The same object model ships for .NET, Java, C++, Python and PHP, so a deck built here is built the same way on any of them.All high-code APIs →

Start with the trial, license when you ship

The trial is the full API. It applies an evaluation watermark when a presentation is opened or saved and replaces extracted text with an evaluation notice, so you can test the formats you actually care about before you talk to anyone. A temporary licence lifts both for 30 days.

If you don't want a library

Aspose.Slides Cloud is a hosted REST API for loading, creating, editing and converting presentations.

In use

The product worked as advertised, the documentation was easy to follow, and the support forums were all the help we needed. The final solution that we deployed has exceeded our initial expectations by a great deal.

— BRUCE BRIEN · STRATASCOPE INC, USA

ASPOSE.SLIDES FOR NODE.JS VIA .NET · PRODUCTS.ASPOSE.COMPRESENTATION AUTOMATION WITHOUT MICROSOFT OFFICE