Skip to main content

Convert PPTX to PDF using LibreOffice headless mode with safe parallel conversion

Project description

fast-pptx-pdf

PyPI version Python versions License: MIT CI

Convert PPTX files to PDF using LibreOffice in headless mode, with safe parallel conversion via per-worker profiles.

  • Simple API: convert_file(path) and convert_folder(path, workers=8).
  • CLI: fast-pptx-pdf file.pptx or fast-pptx-pdf folder/ --workers 8.
  • No profile locking: Each worker uses its own LibreOffice profile in a temp directory.
  • Robust: Timeouts, optional retries, and clear errors.

Python cannot natively render PowerPoint files; this library uses the LibreOffice command-line interface. COM automation (Windows) is not thread-safe; LibreOffice headless runs one process per conversion and is suitable for parallelism when each process has a separate profile.

Requirements

  • Python 3.8+
  • LibreOffice installed and on PATH, or set FAST_PPTX_PDF_LIBREOFFICE to the path to soffice (or its program directory).

Installing LibreOffice

  • Windows: Download the installer, or use winget install TheDocumentFoundation.LibreOffice.
  • Linux: e.g. sudo apt install libreoffice (Debian/Ubuntu) or your distribution’s package.

Install

pip install fast-pptx-pdf

Usage

Python API

from fast_pptx_pdf import convert_file, convert_folder

# Single file (output PDF next to the PPTX by default)
pdf_path = convert_file("slides/presentation.pptx")
# Optional: output directory, timeout, retries
pdf_path = convert_file("deck.pptx", output_dir="pdfs/", timeout=60, retries=1)

# Folder: convert all .pptx in parallel (workers default: min(cpu_count, number of files))
successes, failures = convert_folder("slides/")
successes, failures = convert_folder("slides/", workers=8, continue_on_error=True)

CLI

# Single file
fast-pptx-pdf presentation.pptx

# Folder (default workers)
fast-pptx-pdf slides/

# Folder with 8 workers
fast-pptx-pdf slides/ --workers 8

# Optional: timeout, retries, LibreOffice path, continue on error
fast-pptx-pdf slides/ --workers 4 --timeout 60 --retries 1 --continue-on-error
fast-pptx-pdf file.pptx --libreoffice "C:\Program Files\LibreOffice\program\soffice.exe"

Configuration

  • LibreOffice path: Set the environment variable FAST_PPTX_PDF_LIBREOFFICE to the full path to soffice or to the LibreOffice program directory. The library also searches PATH and common install locations (e.g. Windows Program Files, Linux /usr/bin/soffice).
  • Workers: For convert_folder, if workers is not set, it uses min(cpu_count, number_of_pptx_files).

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fast_pptx_pdf-0.1.0.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fast_pptx_pdf-0.1.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file fast_pptx_pdf-0.1.0.tar.gz.

File metadata

  • Download URL: fast_pptx_pdf-0.1.0.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fast_pptx_pdf-0.1.0.tar.gz
Algorithm Hash digest
SHA256 99ef0f8f3caa34f126b9c210203ac06cb9861d876774d3e44b788cf09175a261
MD5 147a496c6083b0507dbcf9a50f4c8599
BLAKE2b-256 ee7dc7641e41d04f31560b8f25f5a96a85e6401b59c4e225cdbd77b55ccece9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_pptx_pdf-0.1.0.tar.gz:

Publisher: ci.yml on jatizon/fast-pptx-pdf

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fast_pptx_pdf-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: fast_pptx_pdf-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fast_pptx_pdf-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 217e0838048d3d9789263ed74298c107a651d55b5af15628cfa339b799c8e341
MD5 05c04f6014b1d431da46e529dc98b105
BLAKE2b-256 fb8468fa7d4deb48cb18f090700bfebe74ec27587c3d0afb38a39cf6693b8280

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_pptx_pdf-0.1.0-py3-none-any.whl:

Publisher: ci.yml on jatizon/fast-pptx-pdf

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page