Clioos › Guides › PDF to PowerPoint

How to Convert PDF to PowerPoint

By Clioos Team

There is no free tool that turns a PDF into an editable PowerPoint deck — the text in a PDF has no slide structure to recover. The honest free method is simpler: render each page to an image, then put one image on each slide. The deck looks exactly like the PDF, but the text is a picture, not editable text. Here is the exact flow, tested.

At a glance

Steps

  1. Install the tools: pip install python-pptx for the deck builder, and poppler for pdftoppm — on Linux it is usually already there (pdftoppm -v); on macOS brew install poppler.
  2. Render the pages: pdftoppm -png -r 150 input.pdf page — page 1 becomes page-1.png, page 2 becomes page-2.png, and so on. Use 300 instead of 150 for print-quality slides (the file gets bigger).
  3. Build the deck with a short script (see the section below): a blank 16:9 presentation, one full-slide image per page, in order.
  4. Save as .pptx and open it. On the test file, a 3-page PDF produced a 3-slide deck of 76,841 bytes.
  5. Check every slide: a page with a white background and dark text looks right at 150 DPI; a page with tiny print may need 300 DPI. Re-render only the weak pages if you have to.

Worked example (tested 6 November 2026)

I tested this with a 3-page A4 PDF made with ReportLab (2,670 bytes: a heading and one line of body text per page). pdftoppm -png -r 150 produced 3 PNGs of 24,739, 24,970 and 25,123 bytes. The python-pptx script below placed one image per slide in a 16:9 deck (13.33 by 7.5 inches) and saved a 3-slide .pptx of 76,841 bytes, which LibreOffice Impress converted back to a 3-page PDF without errors.

from pptx import Presentation
from pptx.util import Inches

prs = Presentation()
prs.slide_width = Inches(13.33)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]
for png in ['page-1.png', 'page-2.png', 'page-3.png']:
    slide = prs.slides.add_slide(blank)
    slide.shapes.add_picture(png, 0, 0,
        width=prs.slide_width, height=prs.slide_height)
prs.save('output.pptx')

What it can't do (tested)

Free alternatives, honestly compared

PDF Probe does not convert PDF to PowerPoint. It converts PDF tables and bank statements to Excel — if that is the job, see How to Convert PDF to Excel.

Frequently asked questions

Can I edit the text after converting?

No. Each slide is a picture of the PDF page. To get editable text, run pdftotext on the PDF and type or paste the text into new slides yourself.

Is it really free?

Yes. pdftoppm (poppler) and python-pptx are both free and open source, and the whole conversion runs on your own computer — nothing is uploaded.

What DPI should I render at?

150 DPI is sharp enough for screen presentations and keeps the file small. Use 300 DPI if the slides will be printed or projected on a very large screen; the .pptx roughly quadruples in size.

Does it work on scanned PDFs?

Yes. A scanned page is already an image, so it renders like any other page. The slide will be exactly as sharp — or as blurry — as the original scan.


Related guides: How to Convert PDF to Word · How to Convert PDF to JPG · How to Convert PDF to PNG · How to Split a PDF · All guides · Tool: PDF Probe