- HTML to PDF APIConvert HTML and URLs into PDFsExtract PDF Form Data APIEasily extract data from PDFsWatermark PDF APIAdd custom watermarks to PDFsProtect PDF APISecure your PDFs with passwordCompress PDF APIReduce file size without losing qualityFlatten PDF APIFlatten PDFs to make form permanentDigital Signature APISend documents for signing
- API DocumentationAPI DocumentationFull REST API referenceNodeJS SDKClient library for Node.jsJava SDKClient library for JavaC# SDKClient library for C#PHP SDKClient library for PHPPython SDKClient library for Python
- Pricing
- Contact Us

PDFGate vs wkhtmltopdf
A maintained Chrome-based API vs an old command-line tool built on WebKit engine.
Last reviewed: October 3, 2026
Modern CSS and JavaScript
PDFGate renders with current Chrome, so layouts and scripts work as they do in the browser. According to its maintainers, the WebKit engine in wkhtmltopdf has not been updated since 2012, so newer features such as CSS Grid are not supported.
Maintained and updated
PDFGate is actively maintained. The wkhtmltopdf repository was archived in 2023, and its maintainers warn that converting untrusted HTML can lead to a complete takeover of the server.
Nothing to install or run
PDFGate is an API, so there are no binaries, servers, or Qt dependencies to manage. wkhtmltopdf has to be installed, run, and scaled on your own infrastructure.
Which one should you choose?
wkhtmltopdf is an open-source command-line tool that converts HTML to PDF with the Qt WebKit engine. Its repository was archived in January 2023, and its last release, 0.12.6, came out in June 2020. PDFGate's HTML to PDF API renders with current Chrome, so modern CSS and JavaScript work as they do in the browser, and it adds PDF processing and e-signatures.
Choose PDFGate if
- Your templates use modern CSS, such as CSS Grid, or JavaScript frameworks and chart libraries.
- You want a maintained renderer that keeps up with browser and security updates.
- You don't want to install, run, and scale a binary on your own servers.
- Your pages load data with JavaScript and need reliable waiting options.
- You want to send documents for e-signature from the same API.
- You need to compress, flatten, watermark, protect, or extract form data from PDFs.
Choose wkhtmltopdf if
- Documents must never leave your own servers, and you only convert HTML you control.
- Your templates are simple HTML and CSS that already render correctly.
- You need a free tool and accept that it receives no updates or support.
- You need an automatically generated table of contents.
- You need to convert documents without an internet connection.
Comparing more options? See our roundup of the Best HTML to PDF APIs in 2026, where we compare more tools side by side.
An outdated WebKit engine vs current Chrome
wkhtmltopdf renders pages with Qt WebKit. Its project status page explains that QtWebKit was deprecated in 2015 and removed in 2016, that the Qt 4 version wkhtmltopdf uses has not been supported since 2015, and that its WebKit has not been updated since 2012.
As a result, browser features added since then, such as CSS Grid, CSS variables, and modern JavaScript, are not supported. Templates that look right in the browser often need workarounds or a separate, simplified version to render in wkhtmltopdf.
PDFGate renders with current Chrome, so the PDF matches what you see in the browser. wkhtmltopdf's own status page recommends a Chrome-based tool for pages that rely on JavaScript.
Feature comparison
"Not built in" means wkhtmltopdf does not include the feature itself. For everything PDFGate offers, see the HTML to PDF API page.
HTML to PDF rendering
| Feature | PDFGate | wkhtmltopdf |
|---|---|---|
| Rendering engine | Current Chrome | Qt WebKit, not updated since 2012 |
| Modern CSS, such as CSS Grid and variables | Yes | Not supported |
| Modern JavaScript | Yes | Older JavaScript only |
| Convert a URL or raw HTML | Both | URLs and HTML files |
| Wait for dynamic content | CSS selector, network idle, or delay | Fixed delay or a window.status value |
| Inject CSS and JavaScript | Yes | User style sheet and run-script |
| Headers, footers, and page numbers | Header and footer templates | HTML headers and footers |
| Click through cookie banners and pop-ups | Click selectors and selector chains | Not built in |
| Pages behind authentication | Basic authentication and custom HTTP headers | Basic authentication, custom headers, and cookies |
| Fillable PDF form fields | From HTML inputs, including signature fields | From HTML forms |
| Table of contents | Not offered | Generated automatically |
Beyond generation
| Feature | PDFGate | wkhtmltopdf |
|---|---|---|
| E-signatures | Envelopes, recipients, and audit trail | Not built in |
| Password protection and watermarks | Protect PDF and Watermark PDF endpoints | Not built in |
| Compress and flatten PDFs | Dedicated endpoints | Not built in |
| Extract form data from PDFs | Dedicated endpoint | Not built in |
Running it
| Feature | PDFGate | wkhtmltopdf |
|---|---|---|
| Setup | Nothing to install; send an API request | Install the binary and its dependencies on your servers |
| Scaling | Managed, with 3 to 25 parallel conversions depending on the plan | You run and scale it yourself |
| Maintenance and security updates | Actively maintained | None since the repository was archived in 2023 |
| Untrusted HTML | Rendered on PDFGate's servers, not yours | Maintainers warn it can lead to a server takeover |
| Document storage | Stored up to 2 years, with pre-signed URLs | Writes files to your own disk |
| Data location | AWS in the EU (Frankfurt) | Your own servers |
| SDKs | Node.js, Python, PHP, Java, C# | Command line, with community wrappers for many languages |
| No-code integrations and MCP server | Zapier, viaSocket, and others, plus an MCP server | Not built in |
| Support | Email support on every plan | None |
Cost of running it yourself
wkhtmltopdf is free and open source under the LGPL-3.0 license, but running it in production still costs money: servers sized for rendering, keeping the binary and its dependencies installed, monitoring conversions that hang or fail, and developer time spent working around rendering issues.
Because the project no longer receives updates, you also carry the security risk. Its maintainers warn not to convert untrusted HTML, because it can lead to a complete takeover of the server.
With PDFGate, servers, scaling, and Chrome updates are included in the plan, and every plan starts with a 14-day free trial.
PDFGate plans
| Plan | Price / month | Documents / month | Cost per document |
|---|---|---|---|
| Personal | $9 | 500 | $0.018 |
| Starter | $20 | 3,000 | $0.0067 |
| Basic | $50 | 10,000 | $0.005 |
Migrating from wkhtmltopdf to PDFGate
Each wkhtmltopdf command-line option has an equivalent field in a PDFGate API request, so most commands translate directly into JSON.
| wkhtmltopdf | PDFGate |
|---|---|
wkhtmltopdf <url or file> output.pdf | POST https://api.pdfgate.com/generate/pdf with url or html |
--page-size A4 | pageSizeType: "a4" |
--page-width and --page-height | width and height in pixels |
-O Landscape | orientation: "landscape" |
-T, -B, -L, -R | margin.top, margin.bottom, margin.left, margin.right |
--header-html and --footer-html | header and footer, with margin.top and margin.bottom |
[page] and [topage] | pageNumber and totalPages classes |
--javascript-delay | delay |
--window-status | waitForSelector |
--run-script | javascript |
--user-style-sheet | css |
--print-media-type | emulateMediaType: "print" |
--no-background | printBackground: false |
--zoom | scale |
--username and --password | authentication.username and authentication.password |
--custom-header and --cookie | httpHeaders, with a Cookie header for cookies |
--enable-forms | enableFormFields: true |
- wkhtmltopdf uses A4 and 10 mm side margins by default. PDFGate uses Ledger and no margins unless you set them, so set pageSizeType and margin explicitly.
- Instead of setting window.status when the page is ready, add an element and wait for it with waitForSelector.
- PDFGate can't read files from your disk. Send local templates with the html parameter, and use absolute URLs or Base64 data for images and fonts, as described in the custom fonts and images guide.
- Chrome renders CSS more accurately than wkhtmltopdf, so remove any workarounds written for its older engine and check the output.
wkhtmltopdf request
1wkhtmltopdf \2 --page-size A4 \3 --print-media-type \4 -T 20mm -B 20mm \5 https://example.com/invoice/42 output.pdfPDFGate request
1curl -X POST https://api.pdfgate.com/generate/pdf \2 -H "Authorization: Bearer YOUR_API_KEY" \3 -H "Content-Type: application/json" \4 -d '{5 "url": "https://example.com/invoice/42",6 "pageSizeType": "a4",7 "emulateMediaType": "print",8 "margin": { "top": "20mm", "bottom": "20mm", "left": "10mm", "right": "10mm" }9 }' \10 -o output.pdfInformation about wkhtmltopdf comes from its official website and repository and was last reviewed on October 3, 2026. Features may have changed since then.
Frequently Asked Questions
No. The wkhtmltopdf repository was archived in January 2023 and is read-only. Its last release, 0.12.6, came out in June 2020, and the project no longer receives updates or security fixes.
For pages that use modern CSS or JavaScript, switch to a Chrome-based tool. You can run a headless browser library such as Puppeteer yourself, or use a hosted HTML to PDF API like PDFGate so you don't have to manage servers. For static documents designed for print, wkhtmltopdf's maintainers also suggest WeasyPrint or the commercial tool Prince.
wkhtmltopdf uses a WebKit engine that has not been updated since 2012, so it does not support newer CSS such as CSS Grid and variables, or modern JavaScript. A Chrome-based renderer like PDFGate produces the same result you see in the browser.
Its maintainers warn not to use wkhtmltopdf with untrusted HTML, because it can lead to a complete takeover of the server. If you convert user content, sanitize it carefully or use a maintained renderer.
Usually, yes. Translate the command-line options into API fields as shown in the migration table, replace [page] and [topage] in headers and footers with the pageNumber and totalPages classes, and set the page size and margins explicitly.

Start building with PDFGate today
Generate PDFs, send documents for signature, and automate your document workflows in minutes.
Free trial ยท No credit card required