Skip to main content

Python SDK for the Forme hosted PDF API

Reason this release was yanked:

renamed import

Project description

forme

Python SDK for the Forme hosted PDF API.

Installation

pip install formepdf

Quick Start

from forme import Forme

client = Forme("forme_sk_...")

# Render a template to PDF bytes
pdf = client.render("invoice", {"customer": "Acme", "total": 100})

with open("invoice.pdf", "wb") as f:
    f.write(pdf)

API Reference

Forme(api_key, base_url="https://api.formepdf.com")

Create a client instance.

client.render(slug, data=None, *, s3=None)

Render a template synchronously. Returns bytes (PDF), or a dict with {"url": "..."} when s3 is provided.

# Direct PDF bytes
pdf = client.render("invoice", {"customer": "Acme"})

# Upload to S3
result = client.render("invoice", {"customer": "Acme"}, s3={
    "bucket": "my-bucket",
    "key": "invoices/001.pdf",
    "accessKeyId": "AK...",
    "secretAccessKey": "SK...",
})
print(result["url"])

client.render_async(slug, data=None, *, webhook_url=None)

Start an asynchronous render job. Returns {"jobId": "...", "status": "pending"}.

job = client.render_async("report", data, webhook_url="https://example.com/hook")
print(job["jobId"])

client.get_job(job_id)

Poll the status of an async job.

result = client.get_job("job-123")
if result["status"] == "complete":
    pdf_b64 = result["pdfBase64"]

client.extract(pdf_bytes)

Extract embedded data from a PDF. Returns the data dict, or None if none is embedded.

data = client.extract(pdf_bytes)

Error Handling

All methods raise FormeError on non-2xx responses:

from forme import Forme, FormeError

try:
    pdf = client.render("invoice", data)
except FormeError as e:
    print(f"Error {e.status}: {e.message}")

Requirements

  • Python 3.8+
  • No dependencies (stdlib only)

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

formepdf-0.7.10.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

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

formepdf-0.7.10-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file formepdf-0.7.10.tar.gz.

File metadata

  • Download URL: formepdf-0.7.10.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.12

File hashes

Hashes for formepdf-0.7.10.tar.gz
Algorithm Hash digest
SHA256 0eb1cf540f10749ea5a627764f081aacf546bd5e736ac80f2e4f527fc86ea161
MD5 e941d73e20c55ad48b787d5943201cd2
BLAKE2b-256 6129fe14779c20cfa2546233502af1deee6f0dfba67aa845f0ebe0d9ab8f792c

See more details on using hashes here.

File details

Details for the file formepdf-0.7.10-py3-none-any.whl.

File metadata

  • Download URL: formepdf-0.7.10-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.12

File hashes

Hashes for formepdf-0.7.10-py3-none-any.whl
Algorithm Hash digest
SHA256 55438a909c36c9120d8c5892f49327fddfe6042201e5159719dde7302d547ea5
MD5 7b01d4e3885fc5ba9bbdbe6c53589c60
BLAKE2b-256 f11641af0be8cdb32b774294044abcf638d7e022a1ef99e1946059680bf683a0

See more details on using hashes here.

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