Skip to main content

Installation

Requirements

  • Python 3.12 or later
  • A supported platform: Linux (x86-64, ARM64), macOS (x86-64, Apple Silicon), Windows (x86-64)

paperjam ships pre-built wheels for all major platforms. No Rust toolchain is required.

Install from PyPI

pip install paperjam

Optional extras

pandas integration

If you want to call table.to_dataframe() you need pandas:

pip install "paperjam[pandas]"

Documentation

The docs site uses Docusaurus. To build it locally:

git clone https://github.com/ByteVeda/paperjam
cd paperjam/docs
pnpm install
pnpm run start # dev server with hot reload
pnpm run build # static site under docs/build/

Installing from source

Building from source requires a Rust toolchain (stable, 1.88+) and maturin:

pip install maturin
git clone https://github.com/ByteVeda/paperjam
cd paperjam
maturin develop --release

Feature flags

The Rust core exposes optional features that affect which methods are available at runtime. Pre-built wheels on PyPI include all features.

FeatureMethods enabled
renderrender_page, render_pages, page.render, visual_diff
signaturessign_document, verify_signatures, extract_signatures
ltvLTV timestamp embedding (TSA, OCSP, CRL) for signing
validationvalidate_pdf_a, validate_pdf_ua, convert_to_pdf_a
parallelRayon-based parallel processing (default)
mmapMemory-mapped file access for large documents

When building from source you can control features with the --features flag:

maturin develop --release --features render,signatures

CLI Installation

Install the paperjam command-line tool:

# From crates.io
cargo install paperjam-cli

# From source
git clone https://github.com/ByteVeda/paperjam
cd paperjam
cargo build --release -p paperjam-cli

The CLI binary is called pj:

pj --help
pj info document.pdf

MCP Server Setup

To use paperjam as an MCP server for AI assistants (Claude Code, Cursor):

# Build the MCP server
cargo build --release -p paperjam-mcp

Add to your Claude Code or Cursor MCP configuration:

{
"mcpServers": {
"paperjam": {
"command": "paperjam-mcp",
"args": ["--working-dir", "/path/to/documents"]
}
}
}

Verifying the installation

import paperjam
print(paperjam.__version__)