Skip to main content

Python SDK for the Forme hosted PDF API

Reason this release was yanked:

bad documentation

Project description

forme

Python SDK for the Forme hosted PDF API.

Installation

pip install forme

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: formepdf-0.7.9.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.9.tar.gz
Algorithm Hash digest
SHA256 bf839d798e7a509d3038ed7c1fe470c9c93d89d98826222462534b3dee9b952d
MD5 f5278184cc8ff74a0274d27f08188ea2
BLAKE2b-256 66f62bcd4a99361c5728838f1e80beefdf7df844a93080e8c8793804e245c83a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: formepdf-0.7.9-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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 48bb5fae580865c5b3c76a360fceb2c3c886214e409063f6714e248bb6bf9a9f
MD5 a02618c645c008771c84efba90ccd4c7
BLAKE2b-256 f8ea841cd600e9486038e59b3c83f408340714663570f1fc094fdaa41c2351e1

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