NORTHSTAR STUDIO
Invoice #042
Design system€2,400
Implementation€4,800
Total€7,200
Open source · MIT licensed
Render HTML, CSS, and Markdown directly to PDF without a browser, a subprocess, or system dependencies.
cargo add ironpress
<style>
.invoice {
display: grid;
color: #172033;
}
</style>
<h1>Invoice #042</h1>
<table>…</table>
NORTHSTAR STUDIO
Design system€2,400
Implementation€4,800
Total€7,200
0.93 mssimple HTML median
3,200+tests
1,664parity fixtures
8runtime paths
Built for documents
ironpress owns the full rendering path, from parsing and layout to font shaping and PDF output. That keeps deployment predictable.
No Chrome install, process pool, or platform package checklist. The renderer runs inside your application.
Flexbox, grid, tables, multi-column layout, variables,
@page, and print-oriented headers and footers.
Custom fonts, subsetting, Unicode and CJK fallback, shaped with Rustybuzz, plus LaTeX-style math.
Use the same core from Rust, C, .NET, Java, the CLI, Python, Ruby, browser WebAssembly, or Node.js.
HTML and SVG sanitization, constrained file access, resource limits, and opt-in remote fetching policies.
One core, nine paths
The rendering engine is Rust. Every runtime shares the same portable converter controls for pages, quality, fonts, and safety. Choose your runtime.
Rustcrates.io ↗
use ironpress::html_to_pdf;
let pdf = html_to_pdf(
"<h1>Hello</h1>"
)?;
CLIguide →
ironpress invoice.html \
invoice.pdf \
--page-size a4
#include "ironpress.h"
IronpressStatus status =
ironpress_html_to_pdf(
html, &pdf, &error
);
PythonPyPI ↗
import ironpress
pdf = ironpress.html_to_pdf(
"<h1>Hello</h1>"
)
.NETguide →
using Ironpress;
using var converter =
new HtmlConverter();
byte[] pdf = converter.ConvertHtml(
"<h1>Hello</h1>"
);
Javaguide →
try (var converter =
new HtmlConverter()) {
byte[] pdf = converter.convertHtml(
"<h1>Hello</h1>"
);
}
RubyRubyGems ↗
require "ironpress"
pdf = Ironpress.html_to_pdf(
"<h1>Hello</h1>"
)
Browserguide →
import init, { htmlToPdf } from "ironpress";
await init();
const pdf = htmlToPdf(
"<h1>Hello</h1>"
);
Node.jsguide →
import init, { htmlToPdf }
from "ironpress/node";
await init();
const pdf = htmlToPdf(html);
Choose the right renderer
Use ironpress when the document is known HTML and CSS, deployment simplicity matters, and conversion belongs inside your process.
Read the architecture guideInvoices, reports, certificates, server-side exports, and offline or WASM workflows.
JavaScript-driven pages or browser screenshots.
Nothing to install
Install the package for your runtime and generate a PDF in your own process.