Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Pure-Go, no-cgo HTML-to-PDF and HTML-to-image engine with a wkhtmltopdf-style CLI, Go library, and Python bindings.

Claude Code skill for premium scroll-driven websites. Scroll becomes the timeline, on a real design floor, verified by screenshotting its own scroll.
gowkhtmltopdf is a pure-Go, no-cgo PDF and image engine that renders HTML templates into invoices, receipts, certificates, statements, posters and multi-page reports, delivered as two static binaries, a Go library, and Python bindings.
gowkhtmltopdf is an HTML-to-PDF and HTML-to-image rendering engine written in Go that converts HTML templates into PDF or image output without a browser process, cgo, or an external native converter. It accepts HTML files or in-memory HTML bytes and produces PDF documents (default PDF 1.4, opt-in PDF 1.7 or 2.0) and images, using an in-repo pipeline rather than Chrome. It is a clean-room work-alike of the wkhtmltopdf CLI surface, requires Go 1.26+, and is MIT-licensed, copyright 2026 Chinmay Sawant. The current release is v0.2.5, with the Document API and explicit CLI grammar as the supported surface.
gowkhtmltopdf and gowkhtmltoimage, plus the Go library, run the pipeline in-process.Document / ImageDocument API that returns PDF bytes from a PDF(ctx) call, and Python bindings installed with pip that share the same engine through an opt-in shared library built with CGO_ENABLED=1.--pdf-version; PDF/A-3a plus PDF/UA-1 via --pdf-profile a3a-ua1 (implies 1.7) and PDF/A-4 plus PDF/UA-2 via a4-ua2 (implies 2.0).go-text/typesetting for OpenType shaping and tdewolff/canvas for SVG rasterization.Go backend developers who need to turn invoice or statement templates into PDFs inside a service without installing Chrome or wkhtmltopdf on the host. Compliance and archiving teams that must emit PDF/A-3a with PDF/UA-1 or PDF/A-4 with PDF/UA-2 tagged output. Python developers who want in-process conversion through the pip-installed bindings. Platform teams building minimal containers around static binaries with no cgo and no browser runtime.
gowkhtmltoimage.The engine runs an in-repo pipeline: load, parse, style, layout, paginate, paint, then write. From the CLI you build with make build and run the binary against an HTML file with an output path; from Go you construct a Document with explicit Content sources and page settings such as A4, then call the PDF method.
master branch tracks active development and may be broken; stable builds come from tagged releases.gowkhtmltopdf is free and open source under the MIT License. Bundled Liberation and DejaVu fonts ship under SIL OFL / Bitstream Vera terms, and the Noto KR test subset includes its own OFL notice.
wkhtmltopdf is the CLI surface this engine mirrors as a clean-room work-alike, but it runs as an external patched-Qt binary. WeasyPrint and Puppeteer/Chrome are compared directly in the project's own benchmarks against the same fixtures.
Yes. It is released under the MIT License, copyright 2026 Chinmay Sawant. There is no paid tier mentioned on the project page, and the CLI, Go library, and Python bindings all come from the same open-source repository.
No. Native builds use no browser process, no cgo, and no native converter process. A separate opt-in build can run the same pipeline through WebAssembly in a browser for inline HTML previews, but that is not required for PDF generation.
No. It implements a print CSS subset and runs no JavaScript, so it does not aim for Chrome visual parity. The repository publishes a per-element, per-property, and per-flag compatibility matrix covering exactly what is supported.
Output defaults to PDF 1.4. You can opt into PDF 1.7 or 2.0 with the PDF version flag, and choose PDF/A-3a with PDF/UA-1 or PDF/A-4 with PDF/UA-2 through the profile flag or the Go API.
Yes. Python callers get the same engine in-process after installing the package with pip; the shared library is built with CGO_ENABLED=1, and the repository includes Python benchmark and sample targets.
