Pure C# · No Office Required · .NET 8 Ready

Generate PowerPoint presentations in .NET

NetCorePpt is a pure C# library for creating PPTX files — a complete port of PptxGen.js. Build charts, tables, shapes, and rich slides entirely in code, with zero dependency on Microsoft Office.

NuGet package dotnet add package NetCorePpt
Program.cs
using NetCorePpt;
using NetCorePpt.CoreInterfaces;
using NetCorePpt.CoreEnums;

var pres = new PptxGen();
var slide = pres.addSlide();

slide.addText("Quarterly Revenue",
    new TextPropsOptions {
        x = 1, y = 0.5, w = 8, h = 1,
        fontSize = 32, bold = true
    });

// data = new List<OptsChartData> { ... }
slide.addChart(ChartType.bar, data,
    new ChartOpts { x = 1, y = 2, w = 8, h = 4.5 });

await pres.exportToFile("report.pptx");
Trusted by teams building
Financial reports Data dashboards Automated decks Export pipelines SaaS templates
Everything you need

A full PowerPoint engine, in pure C#

Every feature from PptxGen.js, reimagined as idiomatic .NET. Strongly typed, ready for servers and containers.

Charts

Bar, line, pie, doughnut, scatter, area and more — with full series styling and native PPTX rendering.

Tables

Styled tables with per-cell formatting, alignment, spans, and column-width control.

Text & Rich Text

Multi-run text, fonts, colors, bullets, hyperlinks, and precise positioning in inches or cm.

Shapes & Images

Rectangles, lines, arrows, stars, plus images with cropping, rounding, and placeholders.

Slide Masters

Define masters and layouts once; reuse across decks for consistent branding.

100% PPTX Compatible

Files open cleanly in PowerPoint, Keynote, Google Slides, and LibreOffice. No render glitches.

Server-friendly

No Office install, no COM, no Windows-only APIs. Runs on Linux, macOS, and Windows containers.

Native .NET

A real C# codebase — strongly typed, nullable-aware, with clean XML docs.

See it in action

From idea to .pptx in minutes

The API mirrors PptxGen.js, so any JavaScript example you already know translates almost line-for-line into C#.

SimpleSlide.cs
using NetCorePpt;
using NetCorePpt.CoreInterfaces;

var pres = new PptxGen();
var slide = pres.addSlide();

slide.addText("Hello from C#", new TextPropsOptions {
    x = 1.0, y = 1.0, w = 8.0, h = 1.5,
    fontSize = 40, bold = true,
    color = "6D28D9"
});

slide.addImage("logo.png", new ImageProps {
    x = 7.5, y = 4.0, w = 1.5, h = 1.5
});

await pres.exportToFile("hello.pptx");
Real output

Slides your code actually produces

No mockups here — these are the exact PPTX slides NetCorePpt renders from the C# above. Open them in PowerPoint, Keynote, or Google Slides.

Title slide12 lines of C#
Bar chartNative PPTX chart object
Styled tablePer-cell formatting
Why NetCorePpt

Built for .NET developers who hate Office automation

If you've ever wrestled with Office Interop on a server, you know the pain. NetCorePpt skips all of it — no Office install, no COM hell, no Windows lock-in.

  • Runs anywhere .NET runs. Linux containers, Azure Functions, AWS Lambda, desktop apps — one library, every runtime.
  • No silent failures. Strongly-typed props and nullable annotations catch mistakes at compile time, not at slide render.
  • Same API you already know. Ported from PptxGen.js, so the examples, docs, and StackOverflow answers all carry over.
Office Interop
  • Requires Microsoft Office installed
  • Windows-only, breaks in containers
  • COM leaks, hangs, zombie processes
NetCorePpt
  • Zero native dependencies
  • Cross-platform, container-ready
  • Deterministic, testable
From developers

Ships the same day you install it

We replaced a flaky Office Interop service with NetCorePpt and cut our reporting pipeline from 40 minutes to under a second. It just runs in a Linux container now.
— David L.Backend Lead, fintech SaaS
I already knew the PptxGen.js API, so my first slide was done in ten minutes. The C# port feels native — strong typing catches my typos before I even run it.
— 王晓Full-stack developer
Our clients get branded decks generated from their data every morning, automatically. No one touches PowerPoint. NetCorePpt made that possible on a server with no GUI.
— Marco R.Founder, data agency
Simple pricing

Choose the plan that fits

Pay yearly. Prices follow your language and billing region.

Trial

A fully functional evaluation build for developers exploring NetCorePpt. Every feature is unlocked — the only restriction is a 20-slide-per-presentation cap. Perfect for prototyping and learning the API before committing to a paid license.

Free

Up to 20 slides per presentation

  • Up to 20 slides per presentation
  • All features available
  • For evaluation & non-commercial use
  • Community support
Get Trial View full license terms →
Single User License

For individual developers, freelancers, and solo founders. One named developer may use NetCorePpt in unlimited projects — commercial SaaS, internal tools, client deliverables — with no per-deploy fees. Includes one year of updates and priority email support.

$ 100 / year

≈ ¥600 / year for visitors from China

  • 1 developer
  • Unlimited slides
  • Commercial use in your products
  • 1 year of updates
  • Priority email support
Buy Now View full license terms →
Enterprise License

For organizations with no headcount cap. Any number of developers across any number of teams, repositories, and business units may use NetCorePpt without tracking seats. Includes a dedicated support channel, priority bug fixes, and one year of updates for the entire organization.

$ 1000 / year

≈ ¥6,000 / year for visitors from China

  • Unlimited developers
  • Unlimited slides
  • Commercial use in your products
  • 1 year of updates
  • Dedicated support channel
Buy Now View full license terms →
Questions

Frequently asked

Is NetCorePpt really a full port of PptxGen.js?

Yes. Every API surface from PptxGen.js — slides, text, charts, tables, shapes, images, media, masters, and layouts — has been rewritten as idiomatic C#. The behavior and PPTX output match the original.

Do I need Microsoft Office installed?

No. NetCorePpt writes PPTX files directly. There is no dependency on Office, COM, or any native binary. It runs on Linux, macOS, and Windows.

Can I use it in commercial products?

With a Developer License, yes — ship NetCorePpt inside your commercial applications, SaaS, and internal tools with no per-deploy fees.

Which .NET versions are supported?

.NET 6, 8, and 10. The package also ships .NET Standard 2.1 and 2.0 builds, which run on any compatible runtime — including .NET 7 and .NET Framework 4.8+.

What happens after my license year ends?

When the license year ends, the license must be renewed to keep using the library. Renewing extends updates and support for another year.

How is support handled?

Email support with a 1-business-day response target on weekdays. Bug reports are prioritized and typically patched within a release cycle.

Stop fighting Office automation.

Generate clean, compatible PPTX from pure C# — today.

Get a License