Installation
printwell can be installed as a CLI tool, or as a library for Rust, Node.js, or Python.
CLI Installation
From Pre-built Binaries
Download the latest release for your platform from the releases page.
# Linux (x86_64)
curl -LO https://github.com/printwell-dev/core/releases/latest/download/printwell-linux-x64.tar.gz
tar xzf printwell-linux-x64.tar.gz
sudo mv printwell /usr/local/bin/
# Verify installation
printwell --version
From Source
See Building from Source for detailed instructions.
Rust Library
Add printwell to your Cargo.toml:
[dependencies]
printwell = "0.1"
For specific features, use feature flags:
[dependencies]
printwell = { version = "0.1", features = ["signing", "forms", "pdfa", "pdfua"] }
Available Features
| Feature | Description | License |
|---|---|---|
default | Core conversion only (no PDF post-processing) | AGPL |
watermark | Add text and image watermarks | AGPL |
bookmarks | PDF outline/bookmark management | AGPL |
annotations | PDF annotation support | AGPL |
encrypt | PDF encryption with password protection | Commercial |
signing | Digital signature support (PAdES) | Commercial |
timestamp | Timestamp server support for signatures | Commercial |
forms | PDF form field creation and validation | Commercial |
pdfa | PDF/A archival compliance | Commercial |
pdfua | PDF/UA accessibility compliance | Commercial |
pdf-full | All PDF post-processing features | Commercial |
Note: The default feature includes only core HTML-to-PDF conversion. Features marked Commercial require a license - see printwell.dev/pricing.
Node.js Library
npm install printwell
Or with yarn:
yarn add printwell
Supported Platforms
- Linux x64 (glibc 2.17+)
- macOS x64 (10.15+)
- macOS ARM64 (11.0+)
- Windows x64 (Windows 10+)
Python Library
pip install printwell
Or with uv:
uv pip install printwell
Supported Platforms
- Linux x64 (glibc 2.17+, Python 3.9+)
- macOS x64 (10.15+, Python 3.9+)
- macOS ARM64 (11.0+, Python 3.9+)
- Windows x64 (Windows 10+, Python 3.9+)
Docker
For containerized deployments:
FROM ghcr.io/printwell-dev/core:latest
# Your application
COPY . /app
WORKDIR /app
# Use the CLI
RUN printwell convert input.html -o output.pdf
Or use the library in your container:
FROM python:3.11-slim
RUN pip install printwell
COPY app.py /app/
CMD ["python", "/app/app.py"]
Verifying Installation
CLI
printwell --version
printwell info # Show renderer information
Rust
use printwell::Converter;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let converter = Converter::new()?;
let info = converter.info();
println!("Chromium: {}", info.chromium_version);
println!("Skia: {}", info.skia_version);
Ok(())
}
Node.js
import { Converter } from 'printwell';
const converter = new Converter();
const info = converter.info();
console.log(`Chromium: ${info.chromiumVersion}`);
console.log(`Skia: ${info.skiaVersion}`);
Python
from printwell import Converter
converter = Converter()
info = converter.info()
print(f"Chromium: {info.chromium_version}")
print(f"Skia: {info.skia_version}")
Next Steps
- Quick Start - Create your first PDF
- CLI Reference - Full CLI documentation