Open source · MIT licensed

HTML to PDF.
In process.
In pure Rust.

Render HTML, CSS, and Markdown directly to PDF without a browser, a subprocess, or system dependencies.

cargo add ironpress

invoice.html
<style>
.invoice {
  display: grid;
  color: #172033;
}
</style>

<h1>Invoice #042</h1>
<table></table>
ironpresssingle process
PDF

NORTHSTAR STUDIO

Invoice #042

Issued
18 AUG 2026
Due
01 SEP 2026

Design system€2,400

Implementation€4,800

Total€7,200

0.93 mssimple HTML median

3,200+tests

1,664parity fixtures

4language targets

Built for documents

A PDF engine,
not a browser in disguise.

ironpress owns the full rendering path, from parsing and layout to font shaping and PDF output. That keeps deployment predictable.

01

Deploy one binary

No Chrome install, process pool, or platform package checklist. The renderer runs inside your application.

02

Modern document CSS

Flexbox, grid, tables, multi-column layout, variables, @page, and print-oriented headers and footers.

03

Serious typography

Custom fonts, subsetting, Unicode and CJK fallback, shaped with Rustybuzz, plus LaTeX-style math.

04

Multiple runtimes

Use the same core from Rust, Python, Ruby, or WebAssembly. The browser playground runs completely client-side.

  • Rust
  • Python
  • Ruby
  • WASM
05

Defensive by default

HTML and SVG sanitization, constrained file access, resource limits, and opt-in remote fetching policies.

One core, four entry points

Start in the language
you already ship.

The rendering engine is Rust. Every runtime shares the same portable converter controls for pages, quality, fonts, and safety. Compare bindings.

Rustcrates.io ↗

use ironpress::html_to_pdf;

let pdf = html_to_pdf(
    "<h1>Hello</h1>"
)?;

PythonPyPI ↗

import ironpress

pdf = ironpress.html_to_pdf(
    "<h1>Hello</h1>"
)

RubyRubyGems ↗

require "ironpress"

pdf = Ironpress.html_to_pdf(
  "<h1>Hello</h1>"
)

WebAssemblynpm ↗

import { htmlToPdf } from "ironpress";

const pdf = htmlToPdf(
  "<h1>Hello</h1>"
);

Choose the right renderer

When ironpress fits.

Use ironpress when the document is known HTML and CSS, deployment simplicity matters, and conversion belongs inside your process.

Read the architecture guide

Choose ironpress for

Invoices, reports, certificates, server-side exports, and offline or WASM workflows.

Choose a browser for

JavaScript-driven pages, browser screenshots, or exact Chrome print parity.

Nothing to install

Give your HTML
the press treatment.

Load the WebAssembly build and generate a PDF locally in your browser.