AstraPDF
A local-first PDF toolkit with a Python API and browser-based desktop studio. PDF files remain on the machine running the library; the web UI binds to localhost by default.
Install and launch
python -m pip install astrapdf
astrapdf
Open the local address printed by the command. AstraPDF asks the operating system for an available port by default, so it can run even when another app is using a common port. To choose a specific port: astrapdf --port 9000. Do not expose this development server directly to the internet. The default listener is loopback only.
Python API
from pathlib import Path
from pdfstudio import PDFStudio
studio = PDFStudio()
merged = studio.merge(["cover.pdf", "report.pdf", "photo.png"])
Path("combined.pdf").write_bytes(merged)
pages = studio.extract("combined.pdf", [0, 2, 3])
Path("selection.pdf").write_bytes(pages)
Inputs can be paths, bytes, or binary file objects. Document methods return PDF bytes unless documented otherwise; all page indices in the library are zero-based.
See the feature table below for implemented operations and boundaries. Redaction annotations and whiteout overlays are visual covers; they do not remove underlying PDF text. Permanent redaction is intentionally not offered.
License and PDF compatibility
The Python package is MIT licensed. PDFium is distributed in the pypdfium2 wheels under its upstream BSD-style license; see the installed dependency's third-party notices. OCR also requires the Tesseract executable to be installed separately; pip installs AstraPDF's Python dependencies, but cannot install that operating-system program. Supported behavior follows the file format and versions of the bundled libraries. Digital signing, general damaged-PDF repair, XFA forms, and secure redaction are not included.
Metadata
Release files for astrapdf 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| astrapdf-0.1.0.tar.gz | 30.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| astrapdf-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 63.9 kB
Release files / astrapdf-0.1.0.tar.gz
| Download URL | astrapdf-0.1.0.tar.gz |
|---|---|
| Size | 30.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1a40812bd6ad138a7c04f868e5f0f80007d2906256ba5914fc3680b32687547a
|
|
BLAKE2b-256 checksum How to use checksums |
5274df50aeb6e9e243861f316b5d7b535baac6ca2fb89d8aa23350f3fe21192a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.7
|
Release files / astrapdf-0.1.0-py3-none-any.whl
| Download URL | astrapdf-0.1.0-py3-none-any.whl |
|---|---|
| Size | 33.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b6463e9750e0dc5446a71fe0702a9005f57c2eb3006fa1639f67698ba3275d33
|
|
BLAKE2b-256 checksum How to use checksums |
92b095a893627dea627d1a985ba7325123722d524af39246fd39bd44f1992d4d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.7
|