The wkhtmltopdf alternative for people tired of fighting 2015’s WebKit

wkhtmltopdf 0.12.6 released June 2020 · repository since archived

wkhtmltopdf had a great run. But its last release was June 2020, the GitHub repository has been archived, and the engine inside is a Qt WebKit snapshot from around 2015. Every rendering bug you hit today — and you will hit them — is permanent.

What breaks, concretely

The replacement path

The industry answer is Chromium-based rendering: what renders in Chrome renders in your PDF, page breaks follow the modern CSS fragmentation spec, and the engine gets patched. You can run Chromium yourself — then you inherit Puppeteer’s memory problems — or you can make it an API call:

# Before: shelling out to an archived binary
wkhtmltopdf --print-media-type --disable-smart-shrinking invoice.html invoice.pdf

# After: one HTTP call to a current Chromium engine
curl -X POST https://api.nippypdf.com/v1/pdf \
  -H "Authorization: Bearer $NIPPYPDF_API_KEY" \
  -H "Content-Type: application/json" \
  -o invoice.pdf \
  -d "{\"html\": $(jq -Rs . < invoice.html), \"format\": \"A4\", \"print_background\": true}"

NippyPDF is that API: a managed, current Chromium rendering core at around $0.003/document with 500 documents/month free. Working integration guides for Node.js, Python, PHP, Ruby, C# and Go.

FAQ

Is wkhtmltopdf really dead?

The last release, 0.12.6, shipped in June 2020, and the GitHub repository has since been archived — no maintainers, no security patches, no engine updates. It embeds a Qt WebKit build from roughly 2015, which predates flexbox-in-print, CSS grid, and much of the modern fragmentation spec.

Why do my tables split mid-row in wkhtmltopdf?

Its ancient WebKit build has incomplete CSS fragmentation support: page-break-inside: avoid is honoured inconsistently, table rows straddle page boundaries, and floats near a break can vanish content. There are partial workarounds — see our fix guide — but the engine is the root cause and it will never be updated.

wkhtmltopdf is free. Why pay for an API?

The binary is free; running it is not. Teams pay in engineering hours spent on page-break workarounds, dev-versus-server rendering drift, fontconfig issues and an unpatched browser engine exposed to user-supplied HTML. If those costs are near zero for you, keep it. NippyPDF is for teams whose time is worth more than ~$0.003 a document.

Will my existing HTML templates work?

Mostly yes, and usually better: NippyPDF renders with a current Chromium engine, so modern CSS just works. Remove wkhtmltopdf-specific hacks (fixed zoom values, table-based layouts you adopted to dodge its float bugs, --disable-smart-shrinking flags) and check the output in the live demo or Chrome print preview.

Done patching around an archived engine? NippyPDF is a managed Chromium rendering core behind a single POST /v1/pdf — no browser fleet, no page-break roulette, around $0.003/document.

Try the live demoJoin the waitlistStill on wkhtmltopdf? Fix the page breaks first →

Get early access to NippyPDF

Pre-launch. Join the waitlist and lock in early-access pricing — we email once, when your key is ready. No spam.