justpdf-core
Core PDF engine for the justpdf project.
Pure Rust PDF library — parsing, writing, text extraction, compression, encryption, digital signatures, and more.
Usage
Add to your Cargo.toml:
[]
= "0.1"
Example — Read & Extract
use PdfDocument;
let doc = open?;
let pages = collect_pages?;
println!;
let text = extract_all_text_string?;
println!;
Example — Compress
use ;
let pdf_data = read?;
let options = from_preset.unwrap;
let = compress_pdf?;
println!;
write?;
Features
- PDF parsing & writing — incremental updates, object streams, cross-reference streams
- Text extraction — Unicode, CJK, ToUnicode CMap support
- Compression engine — JPEG re-encoding, image downscaling, font subsetting, stream dedup, Flate re-compression, metadata stripping, object stream packing, grayscale conversion, DPI-aware scaling
- 4 compression presets —
low,medium,high,extreme+ fully custom options - Encryption & decryption — RC4, AES-128, AES-256 (R2–R6)
- Digital signatures — sign, detect, verify (PKCS#7/CMS, RSA, SHA-256/384/512)
- Visible signature appearance — Form XObject generation
- RFC 3161 timestamps — timestamp request/response helpers
- Annotations & forms — AcroForm fields, widget annotations
- Optional Content Groups (OCG) — layers, visibility control
- Font subsetting — TrueType/CIDFontType2 glyph-level subsetting
- Linearization — fast web view optimization
Optional Features
| Feature | Description |
|---|---|
mmap |
Memory-mapped file I/O via memmap2 |
arena |
Arena allocator via bumpalo for reduced allocation overhead |
Repository
https://github.com/kihyun1998/justpdf
License
MIT OR Apache-2.0