Comparison

wkhtmltopdf alternative, hosted or self-hosted

The wkhtmltopdf project is archived, its last release shipped in 2020, and its rendering engine predates flexbox. KimiDoc renders with a current Chromium-class engine and, like wkhtmltopdf, can run entirely on your own infrastructure.

Start free Browse the templates

Where wkhtmltopdf stands

None of this is opinion; each point is on the project's own record.

Archived

The GitHub repository was archived in January 2023 and the organization marked archived in July 2024. The last release, 0.12.6, shipped in 2020.

Unpatched critical flaw

CVE-2022-35583, a server-side request forgery rated 9.8 critical, remains open. An archived project ships no fixes, so rendering untrusted HTML with it is a standing risk.

A 2012-era engine

The renderer is a WebKit fork from roughly 2012 inside a Qt fork deprecated in 2015: no flexbox, no CSS grid, and JavaScript from the ES5 era.

Side by side

KimiDocwkhtmltopdf
Rendering engineCurrent Chromium-class print engineWebKit fork, circa 2012
Flexbox, grid, modern CSSFull supportNot supported
MaintenanceActively developedArchived January 2023
Security fixesOngoingNone; critical SSRF unpatched
Runs on your serversYes, licensed per serverYes
Hosted APIYes, with a free tierNo
Templates with data mergeBuilt in, with sample data and an editorAssemble the HTML yourself
Batch runsUp to 40,000 documents per job, with retry and a manifestOne process per document
Encryption, watermarks, appending pagesBuilt inExternal tools
Headers, footers, page numbersCSS @page margin boxes and counter(page)Separate HTML files via CLI flags

When keeping wkhtmltopdf is reasonable

If your documents already render correctly, the input is generated entirely by your own code, and the binary runs isolated from untrusted traffic, wkhtmltopdf is a known quantity and there is no urgency. The risk concentrates where HTML or URLs come from users, and the ceiling shows wherever a design needs CSS written this decade.

Migrating your templates

  1. Render an existing template unchanged. A current engine renders your HTML more faithfully, not less; most documents come out identical or better. The editor's live preview shows you immediately.
  2. Map the flags you used. --orientation becomes the landscape option, -T/-B/-L/-R margins become marginsMm, --page-size becomes pageSize or an exact pageSizeMm.
  3. Replace --header-html and --footer-html with CSS. @page margin boxes repeat on every page and counter(page) / counter(pages) work natively, no separate files.
  4. Decide where it runs. Start on the hosted API free tier, or ask about a per-server licence and keep every document inside your own network, the reason many teams chose wkhtmltopdf in the first place.

Questions engineers ask

Is wkhtmltopdf still safe to use?

It depends on exposure. The project is archived, so CVE-2022-35583 (a critical server-side request forgery) will not be fixed. Rendering HTML that users can influence is the dangerous case; fully internal input on an isolated host carries less risk.

Will my existing HTML templates work in KimiDoc?

Yes. KimiDoc renders with a current Chromium-class engine, so HTML that renders in wkhtmltopdf renders here, and CSS it never supported (flexbox, grid) starts working. Headers and footers move from CLI flags into CSS @page margin boxes.

Can documents stay on our own servers like with wkhtmltopdf?

Yes. KimiDoc self-hosted runs the identical engine inside your network under a per-server licence, and the data never leaves it. Write to hello@kimidoc.com for the build and a licence.

Is there a free way to try it?

The hosted free tier renders 100 documents a month, and previewing templates in the editor is free and unmetered.

Try it against a real document

The editor previews are free and unmetered; the free tier renders 100 documents a month through the API.

Start free Ask about self-hosting