Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

FeatureDescriptionLicense
defaultCore conversion only (no PDF post-processing)AGPL
watermarkAdd text and image watermarksAGPL
bookmarksPDF outline/bookmark managementAGPL
annotationsPDF annotation supportAGPL
encryptPDF encryption with password protectionCommercial
signingDigital signature support (PAdES)Commercial
timestampTimestamp server support for signaturesCommercial
formsPDF form field creation and validationCommercial
pdfaPDF/A archival complianceCommercial
pdfuaPDF/UA accessibility complianceCommercial
pdf-fullAll PDF post-processing featuresCommercial

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