Skip to content
pdfconversionapi

PPSX to PNG API

POST /v2/convert/ppsx/to/png draws slides as lossless PNG. Sent with PageRange=2-3 and ImageWidth=1280, our museum loop returned only the opening-hours table and the visitor chart, as 1,280 × 720 files of 84,825 and 52,026 bytes.

Endpoint
POST /v2/convert/ppsx/to/png
Accepts
ppsx
Sample timing
0.654 s median of 5 runsHow we measure
Request size
Up to 10 MB on the Free plan or 100 MB on paid plans, all files together

Request and response

Every sample below ran against the API before this page was published. Set PDFCONVERSIONAPI_KEY to your key and run it as is.

curl -sS -X POST \
  https://api.pdfconversionapi.com/v2/convert/ppsx/to/png \
  -H "Authorization: Bearer $PDFCONVERSIONAPI_KEY" \
  -F File=@pilot-house-welcome.ppsx \
  --form-string PageRange=2-3 \
  --form-string ImageWidth=1280 \
  -o response.json

# FileData is base64. Save the first file in converted/,
# or print the JSON error.
if jq -e '.Files' response.json > /dev/null; then
  mkdir -p converted
  name=$(jq -r '.Files[0].FileName' response.json)
  jq -r '.Files[0].FileData' response.json \
    | base64 --decode > "converted/$name"
else
  cat response.json
fi
200 OK0.654 s median2 files, 134 KB
{
  "ConversionCost": 1,
  "ConversionTime": 0.654,
  "Files": [
    {
      "FileName": "pilot-house-welcome-2.png",
      "FileExt": "png",
      "FileSize": 84825,
      "FileData": "iVBORw0KGgoAAAANSUhEUgAA…"
    },
    {
      "FileName": "pilot-house-welcome-3.png",
      "FileExt": "png",
      "FileSize": 52026,
      "FileData": "iVBORw0KGgoAAAANSUhEUgAA…"
    }
  ]
}

Response from our test run on 2026-11-03. ConversionTime shows the median of 5 runs. FileData is shortened here; the real response carries the whole file as base64.

The sample, converted

The same file the code sends. Download the input and the output and compare them yourself.

First page of pilot-house-welcome-2.png, rendered by the API
Input
pilot-house-welcome.ppsx (46 KB)
Output
pilot-house-welcome-2.png (83 KB)pilot-house-welcome-3.png (51 KB)
Source
A six-slide welcome loop for a fictional harbor museum, set to advance by itself, with one hidden staff slide. We made it for this page. (CC0-1.0). How it was made
Made by
2026-11-04, API build 9eeeb0640aba

Parameters

Send these as form fields next to the file. Names are case-insensitive. If you set one of the documented options below that we don't support yet, the request fails with a 400 that names it instead of returning a file made without it.

ParameterWhat it does
PageRangestringSlides to draw, counted after hidden ones are taken out. Each file keeps its number: 2-3 gives pilot-house-welcome-2.png and -3.png. 6 returns 400, since the show plays 5 slides.Values: e.g. 2-3, 1,5
ImageWidthintegerExact width, height in proportion. 1280 gives 1,280 × 720 and 320 gives a 320 × 180 thumbnail.Values: 1–20,000
ImageResolutioninteger, default 150Pixels per inch of slide, also stored in the PNG when you send it. The default draws 1,999 × 1,125; 72 gives 959 × 540.Values: 36–600
TransparentColorstringPixels of exactly this color become transparent. white on the lamp-room slide cleared 71.8% of its pixels and left the text, title and picture.Values: a name, #RRGGBB or R,G,B
ColorSpaceenum, default defaultgray writes a one-channel PNG: 55,709 bytes for the welcome slide at 150 DPI, against 143,611 in color.Values: default, rgb, gray, monochrome
ConvertHiddenSlidesboolean, default falseDraw hidden slides as well. The staff checklist becomes page 4 and the tour slide moves to 5.
BackgroundColorstring, default whitePaints under each page where the slide leaves the image bare. Every slide in this show fills the image out to all four edges, so red and black gave the same pixels as no option on every slide, at 150 DPI and at 1,280 wide.
PasswordstringNeeded for a show saved with a password; without it the API answers 422.
FileNamestringReplaces pilot-house-welcome in the file names; the page number stays.

Not supported yet

Setting one of these to anything but its default returns 400.

OptionWhat to do instead
ConvertSpeakerNotesNotes are not drawn. Values other than Disabled return 400.
PageSizeThe slide's own shape is used; any value but default returns 400 "PageSize is not supported yet for PPSX files".

What carries over, and what doesn't

Kept

  • Text edges with no compression noise, down to the small red holiday-hours line
  • The chart's series colors as set in the deck: navy for adults, red for children
  • The table's blue header row and banded rows
  • RGB files with no alpha channel, until TransparentColor adds one

Lost or not yet supported

  • Playback: the 8-second timing, fades and loop.
  • Calibri, drawn as Carlito, which has the same letter widths.
  • The speaker note on the hours slide.
  • Small files: the five slides at 150 DPI total 613,601 bytes as PNG and 289,358 as lossless WebP, for the same pixels.

Limits

  • At most 2,000 pages per request.
  • 16,000 pixels per side and 100 million pixels per page; larger requests get 413.
  • Requests up to 10 MB on the Free plan or 100 MB on paid plans; 120 seconds for the conversion, then 504.

Where teams use it

Slides on a web page

Put the opening hours or the visitor chart from the lobby loop on the museum's site without retyping them. PageRange picks those slides, and PNG keeps small table text sharp.

Cut-outs for other layouts

With TransparentColor=white the white slide background drops away, so the title, text and picture can sit on a colored newsletter or flyer background.

Questions

Why do the files start at -2 instead of -1?

Each PNG is named after its page in the show, so PageRange=2-3 returns -2.png and -3.png. That keeps names stable when you render a few slides at a time.

Does BackgroundColor do anything for a slide show?

No. All six slides fill the image with their own background, right to every edge, so a red BackgroundColor gave the same pixels as leaving it out. To remove a background, use TransparentColor instead.

How do I make small thumbnails?

Send ImageWidth=320; the 16:9 slide gives 320 × 180. The welcome slide at that size is 13,019 bytes.

Which slide numbers does PageRange use?

The numbers of the slides the show plays. Slide 5 of the file, Lamp room tours, is page 4 because slide 4 is hidden. Add ConvertHiddenSlides=true and the file's own numbering applies.

Convert your first PPSX file in a minute.