Search by

powerpoint-engine-api / powerpoint-engine-php

powerpoint-engine-api

PHP SDK for the PowerPoint Engine API - generate, edit, merge and PDF-convert PowerPoint decks over HTTP

Package info

github.com/powerpoint-engine-api/powerpoint-engine-php

Homepage

Documentation

pkg:composer/powerpoint-engine-api/powerpoint-engine-php

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v2.0.0 2026-07-14 18:51 UTC

This package is auto-updated.

Last update: 2026-09-14 19:13:49 UTC


README

PHP client for the PowerPoint Engine API: generate .pptx from Markdown or a structured template, edit / merge / replace inside existing decks, and convert PPTX to PDF — over plain HTTP, no PowerPoint or LibreOffice install needed.

Zero package dependencies — plain curl, PHP 8.0+.

Install

composer require powerpoint-engine-api/powerpoint-engine-php

Quick start

use PowerPointEngine\PowerPointEngine;

$engine = new PowerPointEngine(); // anonymous: works, but files are watermarked

$result = $engine->generate(<<<MD
# Q3 Business Review

## Highlights
- Revenue up 24% QoQ
- 3 new enterprise customers

## Quarterly Numbers
| Region | Q1  | Q2  | Q3  |
|--------|-----|-----|-----|
| EU     | 1.0 | 1.2 | 1.4 |
| US     | 2.0 | 2.4 | 2.6 |
MD, theme: 'corporate');

$engine->download($result, 'review.pptx');

Markdown tables become native PowerPoint tables. A fenced ```chart block under a ## heading becomes a real editable chart (col / bar / line / pie / combo with a secondary axis).

Work with existing decks

// Replace {{placeholders}} without breaking formatting
$engine->replace('template.pptx', ['client' => 'ACME', 'year' => '2026']);

// Duplicate / delete / reorder slides (1-based)
$engine->edit('deck.pptx', [
    ['op' => 'duplicate', 'slide' => 2],
    ['op' => 'delete', 'slide' => 5],
    ['op' => 'move', 'slide' => 3, 'to' => 1],
]);

// Merge 2-5 decks; each keeps its own design
$engine->merge(['intro.pptx', 'results.pptx', 'outro.pptx']);

// Convert to PDF
$pdf = $engine->toPdf('deck.pptx');
$engine->download($pdf, 'deck.pdf');

// Translate in place (layout preserved)
$engine->translate('deck.pptx', 'Spanish');

Every call returns an array with result.downloadUrl — a signed link valid for 24 hours. $engine->download($result, $path) fetches it.

Branding

$engine->generate(
    "# Deck\n\n## Slide\n- point",
    brand: ['primary' => '#E4002B', 'secondary' => '#111827'],
    font: 'Georgia',
);

Accounts and credits

Pass your account id to tie calls to your quota and remove the watermark (Pro plan):

$engine = new PowerPointEngine(sessionId: 'your-account-id');

Billing is credit-based: 1 credit = up to 10 slides. Free tier: 5 credits/month (watermarked); Pro ($9/mo) removes the watermark. Details: powerpointengine.io/#pricing.

AI agents

The same engine is exposed as a remote MCP server — one line in Claude Code / any MCP client:

claude mcp add --transport http powerpoint-engine https://powerpointengine.io/api/mcp/mcp

Errors

Failed calls throw PowerPointEngine\PowerPointEngineException; getStatusCode() returns the HTTP status (400 validation, 429 rate limit, 5xx server).

License

MIT