Skip to main content

pylopdf

PyPI CI Python License: MIT

PDF editing, rendering, extraction, and generation for Python — a pymupdf-style API on a pure-Rust core, MIT licensed, with no mandatory Python dependencies.

Documentation · Getting started · API reference · pymupdf migration guide · Benchmarks

pylopdf combines the 2026 Rust PDF ecosystem behind one Python API: lopdf for editing, hayro (the pure-Rust PDF renderer adopted by Typst) for rendering and positioned extraction, and krilla with HarfRust for shaped, subset-embedded text and form appearances.

Why pylopdf?

pylopdf pymupdf pypdf pypdfium2 pdf_oxide pikepdf
License MIT AGPL / commercial BSD Apache/BSD MIT/Apache-2.0 MPL-2.0
Wheel size (MiB) ~6.4–7.4 ~17.5–24.7 small (pure Python) ~2.7–5.0 ~9.7–10.9 ~1.9–4.6
Editing (merge / split / rotate / outlines) ✅ ✅ ✅ limited ✅ ✅ (structure-focused)
Rendering (PNG / SVG) ✅ ✅ ❌ ✅ (PNG) ❌ ❌ (docs point to other tools)
Text extraction ✅ (positioned text, tables, Markdown) ✅ (advanced) ✅ ✅ ✅ (advanced, table detection / Markdown) ❌ (docs point to other tools)
Encryption (AES-256) ✅ read & write ✅ ✅ read only undocumented ✅ (via qpdf)
Locale-aware multilingual fonts ✅ (optional extras) ✅ — manual — —
Implementation pure Rust C/C++ Python C++ (PDFium) Rust C++ (qpdf)

pylopdf's range covers the five native abi3 wheels built from the 0.14.0 sources with the thin-LTO release profile on GitHub-hosted runners on 2026-10-17; the published 0.14.0 wheels are 6.8–7.9 MiB. The other ranges are published files for pymupdf 1.28.0, pypdfium2 5.12.1, pdf-oxide 0.3.75, and pikepdf 10.10.0 on 2026-07-25.

  • AGPL-free: covers the common pymupdf use cases under the MIT license
  • Small and self-contained: fits size-constrained environments such as AWS Lambda and Cloudflare Workers
  • One wheel per platform: abi3 covers CPython 3.11–3.15, plus native cp314t and cp315t wheels for free-threaded Python
  • Familiar: the API is modeled after pymupdf, with a migration guide

Install

pip install pylopdf

Optional extras:

pip install "pylopdf[jp]"    # Japanese rendering fallback and text generation
pip install "pylopdf[ko]"    # Korean
pip install "pylopdf[zh-cn]" # Simplified Chinese
pip install "pylopdf[zh-tw]" # Traditional Chinese
pip install "pylopdf[ar]"    # Arabic generation (also: he, hi, th)
pip install "pylopdf[ocr]"   # offline PP-OCRv6 recognition, pure Rust,
                             # no system executables or network at runtime

The locale-specific CJK extras provide both non-embedded PDF fallback and generation fonts. The ar, he, hi, and th extras provide generation fonts for Arabic, Hebrew, Devanagari, and Thai. Choose jp, ko, zh-cn, or zh-tw explicitly for the required regional glyph conventions; there is no generic CJK font extra.

Building from source requires a Rust toolchain: uv sync.

Quickstart

import pylopdf

doc = pylopdf.open("input.pdf")              # or pylopdf.open(stream=pdf_bytes)

# Extract: plain text, positioned words, search, tables, Markdown
text = doc.get_page_text(0)
words = doc[0].get_text("words")             # (x0, y0, x1, y1, word, block, line, word_no)
hits = doc[0].search_for("tax")              # case-insensitive, list[Rect]
tables = doc[0].find_tables()                # bordered grids incl. merged cells
markdown = doc.to_markdown()                 # RAG / LLM preprocessing

# Render: PNG / SVG / raw pixels
png: bytes = doc.render_page(0, dpi=300)
batch = doc.render_pages([0, 1, 2], scale=2, workers=4)
svg: str = doc.render_page_svg(0)
pix = doc[0].get_pixmap(dpi=144)             # immutable RGBA8 for NumPy / PIL

# Edit: reorganize pages, merge documents
doc.delete_pages([1, 2])
doc.select([2, 0])                           # keep / reorder / duplicate
merged = pylopdf.Document()
merged.insert_pdf(pylopdf.open("a.pdf"))
merged.insert_pdf(pylopdf.open("b.pdf"), from_page=0, to_page=2)

# Generate: images, overlays, shaped subset-embedded multilingual text
page = doc[0]
page.insert_image((72, 72, 200, 200), filename="logo.png")
page.show_pdf_page(page.rect, letterhead)    # vector overlay from another PDF
page.insert_text((40, 80), "社外秘", fontsize=20, color=(0.8, 0, 0))
page.insert_text((40, 120), "简体中文", fontsize=20, font_language="zh-CN")
page.replace_text("DRAFT", "FINAL")
page.add_highlight_annot(page.search_for("important"))

# Headers / footers / page numbers (standard-14 fonts)
for i, p in enumerate(doc):
    p.insert_text((p.rect.width - 90, p.rect.height - 30), f"Page {i + 1}", fontsize=9)

# Forms (AcroForm)
doc.set_form_field("customer", "Taro Yamada")
doc.set_form_field("agree", True)

# OCR: add a searchable text layer offline (pip install "pylopdf[ocr]")
engine = pylopdf.OcrEngine(threads=4)
page.apply_ocr(engine=engine)                # skips pages with existing text

# Save: optimized, or AES-256 encrypted
doc.save("out.pdf", garbage=True, deflate=True, object_streams=True)
doc.save("locked.pdf", user_pw="secret", permissions=pylopdf.Permissions.PRINT)

# Encrypted input and fast probing
doc = pylopdf.open("locked.pdf", password="secret")
info = pylopdf.peek_metadata("input.pdf")    # page count / encryption, no full parse

The getting started guide walks through each area; the API reference documents every method, default, and resource boundary.

Features

  • Editing — merge, split, select/reorder, rotate, page boxes, blank and copied pages, table of contents, page labels, metadata, file attachments, AES-256 encrypted save, atomic file replacement
  • Extraction — plain and positioned text (words / blocks / dict), case-insensitive search, bordered and opt-in borderless table detection with merged-cell reconstruction, image and vector-drawing extraction, Markdown conversion, vertical and rotated CJK reading order
  • Rendering — PNG and SVG via hayro, page-region clips, DPI control, background fills, ordered parallel render_pages
  • Generation — JPEG-passthrough/PNG image insertion, vector page overlays (show_pdf_page), HarfRust-shaped insert_text / insert_textbox with subset embedding and UAX #14 wrapping, reusable Font faces whose text_length is the drawn width, pymupdf's Shape and draw_* vector drawing that embeds each font once per commit, highlight and link annotations, AcroForm filling with regenerated appearances, bounded simple-font text replacement
  • OCR — offline PP-OCRv6 engine ([ocr] extra), positioned words, idempotent invisible searchable layers, clockwise rotation correction
  • Untrusted input policy — DocumentLimits.web() bounds file size, pages, objects, decompression, glyph and output budgets in one opt-in profile; every documented cap raises a typed LimitError instead of degrading silently (security model)
  • WebAssembly — a static PyEmscripten wheel runs on Cloudflare Python Workers, verified end-to-end every release (guide)
  • Concurrency — heavy operations release the GIL, distinct Document objects work in parallel, and native cp314t and cp315t wheels support free-threaded Python 3.14 and 3.15 (contract)

Limitations

pylopdf documents its boundaries instead of guessing. Multicolumn reading order follows deterministic whitespace-gutter rules; borderless table detection is opt-in because aligned prose is geometrically ambiguous. CJK text generation selects one font per run (not per-glyph fallback). Pure RTL lines and lines with one Latin or numeric token bracketed by RTL text are restored to logical Unicode order. Edge tokens, multiple tokens, and general mixed bidirectional paragraph layout remain in producer visual order. Ruby, warichu, and mixed-orientation Japanese typography are not interpreted semantically. Typesetting, PDF/A output, and digital signatures are intentionally out of scope — see the ecosystem recipes below. The API stability policy defines what may change before and after v1.0.

Ecosystem recipes

pylopdf stays a lightweight core; adjacent concerns pair with established libraries. These recipes are covered by integration tests and detailed in the ecosystem guide.

Typesetting and PDF/A output — typst (via typst-py):

import typst
import pylopdf

pdf_bytes = typst.compile("report.typ")         # typesetting: typst
doc = pylopdf.open(stream=pdf_bytes)            # editing / extraction: pylopdf
pdf_a: bytes = typst.compile("report.typ", pdf_standards="a-2b")

Digital signatures (PAdES) — pyHanko (MIT), which signs with an incremental update so pylopdf's bytes remain untouched:

import io
from pyhanko.pdf_utils.incremental_writer import IncrementalPdfFileWriter
from pyhanko.sign import signers

signer = signers.SimpleSigner.load("key.pem", "cert.pem")
out = signers.sign_pdf(
    IncrementalPdfFileWriter(io.BytesIO(doc.tobytes())),
    signers.PdfSignatureMetadata(field_name="Signature1"),
    signer=signer,
)

Validating existing PDFs against PDF/A remains veraPDF's job.

Benchmarks

A reproducible benchmark suite ships with the repository — same corpus, same tasks, medians, and wins and losses published as-is. Rendering is reported end to end and split into cold and warm rasterization plus PNG encoding time and size, so a fast PNG encoder cannot hide slower rasterization: latest results, free-threaded extraction, and the native OCR report with strict and NFKC character error rates on licensed Japanese fixtures.

uv sync --all-extras --group bench && uv run python bench/run.py

Architecture

pylopdf.Document (Python, pymupdf-style API)
   └─ _Document (PyO3)
        ├─ lopdf 0.45   … editing: open → modify → save
        ├─ hayro 0.8    … rendering and positioned extraction
        └─ krilla 0.8 + HarfRust 0.14
                         … shaped, subset-embedded text and form appearances
rust/          # PyO3 bindings
src/pylopdf/   # Python high-level API
tests/         # pytest (Rust behavior is verified through Python tests)

Every release installs each published wheel — five abi3-py311 on CPython 3.14 and 3.15, five CPython 3.14t, five CPython 3.15t, the sdist, and the PyEmscripten wheel — on architecture-matched runners and exercises creation, saving, extraction, and rendering before publishing with build provenance.

Contributing

Bug reports and focused contributions are welcome. See CONTRIBUTING.md for development commands, test expectations, and the rules for sharing PDF regression files:

uv sync                    # build + install dependencies
uv run pytest              # tests
uv run ruff check .        # lint
uv run ty check            # type check

Report security vulnerabilities privately through GitHub Security Advisories.

License

MIT. Bundled Rust dependencies keep their own permissive licenses (lopdf and HarfRust are MIT; hayro and krilla are MIT/Apache-2.0) — see NOTICE.md.

Metadata

Release files for pylopdf 0.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pylopdf 0.15.0
File Size Uploaded Provenance Actions
pylopdf-0.15.0.tar.gz 463.4 kB With provenance Details for pylopdf-0.15.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pylopdf 0.15.0
File Actions
pylopdf-0.15.0-cp315-cp315t-win_amd64.whl CPython 3.15 CPython 3.15 free-threading Windows x86-64 Details for pylopdf-0.15.0-cp315-cp315t-win_amd64.whl
pylopdf-0.15.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Details for pylopdf-0.15.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pylopdf-0.15.0-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64 Details for pylopdf-0.15.0-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
pylopdf-0.15.0-cp315-cp315t-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64 Details for pylopdf-0.15.0-cp315-cp315t-macosx_11_0_arm64.whl
pylopdf-0.15.0-cp315-cp315t-macosx_10_12_x86_64.whl CPython 3.15 CPython 3.15 free-threading macOS 10.12+ x86-64 Details for pylopdf-0.15.0-cp315-cp315t-macosx_10_12_x86_64.whl
pylopdf-0.15.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details for pylopdf-0.15.0-cp314-cp314t-win_amd64.whl
pylopdf-0.15.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details for pylopdf-0.15.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pylopdf-0.15.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details for pylopdf-0.15.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
pylopdf-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details for pylopdf-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl
pylopdf-0.15.0-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details for pylopdf-0.15.0-cp314-cp314t-macosx_10_12_x86_64.whl
pylopdf-0.15.0-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details for pylopdf-0.15.0-cp311-abi3-win_amd64.whl
pylopdf-0.15.0-cp311-abi3-pyemscripten_2025_0_wasm32.whl CPython 3.11 abi3 PyEmscripten 2025.0+ WebAssembly Details for pylopdf-0.15.0-cp311-abi3-pyemscripten_2025_0_wasm32.whl
pylopdf-0.15.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 abi3 Linux glibc 2.17+ x86-64 Details for pylopdf-0.15.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pylopdf-0.15.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 abi3 Linux glibc 2.17+ ARM64 Details for pylopdf-0.15.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
pylopdf-0.15.0-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details for pylopdf-0.15.0-cp311-abi3-macosx_11_0_arm64.whl
pylopdf-0.15.0-cp311-abi3-macosx_10_12_x86_64.whl CPython 3.11 abi3 macOS 10.12+ x86-64 Details for pylopdf-0.15.0-cp311-abi3-macosx_10_12_x86_64.whl

Total release size: 132.7 MB

Release files / pylopdf-0.15.0.tar.gz

Download URL pylopdf-0.15.0.tar.gz
Size 463.4 kB
Tags Source
SHA-256 checksum
How to use checksums
fdbbbb86ff89782cabd340fc14fa794b042e5a49274ac296fce6ebfc3aaaed0e
BLAKE2b-256 checksum
How to use checksums
da8944c2784081fd6f4d461835f6b1c692d198269e7b0a052b94d439eac32957
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp315-cp315t-win_amd64.whl

Download URL pylopdf-0.15.0-cp315-cp315t-win_amd64.whl
Size 8.7 MB
Tags CPython 3.15 CPython 3.15 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
b80ece5ea67002066566f7e6f9c49245a833de4585fcd8b928e883729f41e6a3
BLAKE2b-256 checksum
How to use checksums
561d1f0b59fadf32f8df4e0d1c080ca6bddd8ffcbce602deca34c6139fb22ec0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pylopdf-0.15.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.0 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
40591486919dcd3871cf887c876c93cf067524db25e9bdd87b2e6a6c720f18dd
BLAKE2b-256 checksum
How to use checksums
f2e9f5307796fd39601a5542a0e42f41066124f56f271c7a004b1f55588cd59e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pylopdf-0.15.0-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 8.4 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
02640f23657cdd59159b859c9f1e2846c9142e5d2223c65a4ef142269fa5c194
BLAKE2b-256 checksum
How to use checksums
10b9f3b4b9e3d5dc8f1770063f84fd7e0827271973dccda049c1214ecd9d5e71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp315-cp315t-macosx_11_0_arm64.whl

Download URL pylopdf-0.15.0-cp315-cp315t-macosx_11_0_arm64.whl
Size 7.8 MB
Tags CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6816b321e6fbde2da6be8a6051ade56dda95025f73e278d64b9b3a051dbc03c5
BLAKE2b-256 checksum
How to use checksums
a4525212e6bd189d7d84a3cc6c5417f514fd3ed08bb0c98ebdec5054273f9826
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp315-cp315t-macosx_10_12_x86_64.whl

Download URL pylopdf-0.15.0-cp315-cp315t-macosx_10_12_x86_64.whl
Size 8.6 MB
Tags CPython 3.15 CPython 3.15 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ed8eb196966ecb45b045555b6fcd803278fc609a8424541726dd0194f2d6b844
BLAKE2b-256 checksum
How to use checksums
aa80c810ee74eab6909649cb9baa4e0b7e73696783b309e968b19aec8d7620bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp314-cp314t-win_amd64.whl

Download URL pylopdf-0.15.0-cp314-cp314t-win_amd64.whl
Size 8.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
335f561f3220e8b68b82459620b499864dd624872786d28bb894c218ea15e262
BLAKE2b-256 checksum
How to use checksums
d89befa741da3ab1831e066c27c9234a4a8959eee0697f2f4ae4b63ea846eb6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pylopdf-0.15.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a88eba0c8f270a959d6d4ea71bf08e7d791758a584d614f6c0cf19bc1c54ffee
BLAKE2b-256 checksum
How to use checksums
4ad3a3bbe1c3d870fafd8f0dc6ddb999fa4c35ff912ae38775b26d4402089c60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pylopdf-0.15.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 8.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
2a4c6884e4cef57f360a7eddbb55948bbf2b8538f4dd543e4fdbc41f4f1c54ad
BLAKE2b-256 checksum
How to use checksums
61ea700e9eafc8246f04bc9893f3f9da1b2f431808f0471423242495d0588ee4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL pylopdf-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 7.8 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
25fcce3b13fda3d2a47c9ad4d8beea499940274f6e2d9932e672a1258ed7d236
BLAKE2b-256 checksum
How to use checksums
4b2bd6b161c67de567a819436d1d7088b858fdcee5a87ef823340ddf50fa4d30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL pylopdf-0.15.0-cp314-cp314t-macosx_10_12_x86_64.whl
Size 8.6 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e640b1c33a39b530c693e6862064d3aaae2cc87a19ed23f79ec05337c90119da
BLAKE2b-256 checksum
How to use checksums
7905fbca0126b8356480723ed2412892556eb772645d647c46c50a0ed4993c6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp311-abi3-win_amd64.whl

Download URL pylopdf-0.15.0-cp311-abi3-win_amd64.whl
Size 8.7 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
fa3b2888e6663139e5632434f21c9d23eb3c6989d57295b4e9d765aa2aacc1c2
BLAKE2b-256 checksum
How to use checksums
c1db29451ffd96a02ad303d3e30548ae35dd0ba34c96509ba53ccadd236e24b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp311-abi3-pyemscripten_2025_0_wasm32.whl

Download URL pylopdf-0.15.0-cp311-abi3-pyemscripten_2025_0_wasm32.whl
Size 4.7 MB
Tags CPython 3.11 PyEmscripten 2025.0+ WebAssembly abi3
SHA-256 checksum
How to use checksums
a1f88f1b486c0bdf6755be77c2bcaf726563ab96e2ebbdaa1e3bfa36efa39dd1
BLAKE2b-256 checksum
How to use checksums
37eae950e7fe8eea3b0959ecb110592aa828103cc868bbd1a3ef7b0461a19724
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pylopdf-0.15.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.1 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
1e4e6e5c2280bb53250c6158010ef83d2585e3ab3d640d334f573f1e0bf29deb
BLAKE2b-256 checksum
How to use checksums
6fa61a4340c814510d70ba972a5b69f5cc4e35c724b8723938d8ec96c1d5ac4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pylopdf-0.15.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 8.4 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
c2593b0376e886d29856deb8f81f641959fc4fd80ccf72e74ac7f97492df4a53
BLAKE2b-256 checksum
How to use checksums
954ec0873128afc7419099ff03025e7e5e736bce6243b437f5c58fcc52a9bbd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL pylopdf-0.15.0-cp311-abi3-macosx_11_0_arm64.whl
Size 7.8 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ca555d22eb77333b67dc44849bdc13a3fba5a2797da7600894d4906ad6ceac22
BLAKE2b-256 checksum
How to use checksums
99a703b402697f4b5706cda5e095e2a6769fb8fb641693339674c2a3a9a1c049
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / pylopdf-0.15.0-cp311-abi3-macosx_10_12_x86_64.whl

Download URL pylopdf-0.15.0-cp311-abi3-macosx_10_12_x86_64.whl
Size 8.6 MB
Tags CPython 3.11 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e4edcb7a70fb31746ed5b9d97c02c1f957731d3e8586b7df19fa9b3a3654c1b3
BLAKE2b-256 checksum
How to use checksums
a76b3d46c0695d7beeae751e2023eb831346976981df966d0272d05a890ce4b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Security for pylopdf 0.15.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 17 files in this release have been uploaded with provenance metadata.

Select from 17 files

Attestation for pylopdf-0.15.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page