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. Whiteout overlays are visual covers and do not remove underlying PDF text. Permanent redaction is available in the browser studio: it rasterizes every page into a fresh PDF, paints over selected regions, and drops searchable text, forms, links, annotations, and source metadata. Review the output carefully before sharing; redaction is irreversible in that output.
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, and XFA forms are not included.
Metadata
Release files for astrapdf 0.1.1
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.1.tar.gz | 34.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| astrapdf-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 72.1 kB
Release files / astrapdf-0.1.1.tar.gz
| Download URL | astrapdf-0.1.1.tar.gz |
|---|---|
| Size | 34.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
25aa3a7b2ede106ff0e6c36fff9485e075b925a7726347622563650243ceb331
|
|
BLAKE2b-256 checksum How to use checksums |
4d48eb2152ba4192f32e4ebbba777186b85dcfac7bfac90cb1cf74760f6aa490
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / astrapdf-0.1.1-py3-none-any.whl
| Download URL | astrapdf-0.1.1-py3-none-any.whl |
|---|---|
| Size | 37.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b4a2430427abc38bb59134a39ce70682ec709d212086331d8062f1760f91c069
|
|
BLAKE2b-256 checksum How to use checksums |
7479c7ea61b385f03622c0441cb3e41e6d0d79448c6253bfcf6889ac77ee38e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|