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.1.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.1-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fast_pptx_pdf-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 0dfbea72305dcf5674f477f0a4761db49dc744c83b3d0103ef20bfef0a289737
MD5 8c6d7cfddf379eb30cda118c88dbf777
BLAKE2b-256 7a87c96f597379d2533f92e82e847f9b328291bdd29e5cf277b435f260d393c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_pptx_pdf-0.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: fast_pptx_pdf-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.9 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 10028cfd8c5625c5756781689588943ff7865da13f4e7d14a13ec84db09c2b90
MD5 6e19f9fe227f619739324fa11bb598b4
BLAKE2b-256 a46065bb17beb37bf562a4bb1abcc559867e36861f44cc2f7d24502b34413491

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_pptx_pdf-0.1.1-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