#!/bin/bash
[rahul@fedora ~/projects]$ cat pptx-pdf-tools.md

pptx-pdf-tools

Python 3.8+ · Flask · Spire.Presentation · pypdf · Docker

pptx-pdf-tools is a Flask web application that turns a set of routine but awkward document operations into a single browser-based utility. Merging several PowerPoint decks, converting a presentation to PDF, or concatenating PDFs are each individually simple tasks that normally mean installing desktop software, hunting for an ad-laden online converter, or handing files to a third-party service. The project collects them into one self-hosted dashboard where the work happens on infrastructure the operator controls.

Three operations are exposed through the interface: merging multiple .ppt or .pptx presentations into a single continuous file, converting presentations to PDF, and losslessly concatenating multiple PDF documents. Spire.Presentation handles the PowerPoint side and pypdf the PDF side, with Flask providing the routing and upload handling behind a responsive drag-and-drop dashboard built in plain HTML, CSS and JavaScript.

The design decision that shapes the backend is statelessness. Uploads are processed in temporary space and cleaned up immediately after the response is delivered, so no user document persists on the server once the request is finished. That keeps storage flat regardless of traffic, avoids accumulating other people's files, and lets the application scale across concurrent users without coordination between requests. A Dockerfile ships with the project so the whole thing — Python runtime, conversion dependencies and web server — deploys as one image to Railway, Render, Heroku or AWS, or runs locally with a single build-and-run pair. It is a small, pragmatic project: the interesting part is not the conversions themselves but packaging them as a clean, disposable, deployable service.