Cette page est affichée en anglais. Une traduction française est en cours.
ConfigsJul 23, 2026·3 min de lecture

wkhtmltopdf — Convert HTML to PDF Using WebKit

A command-line tool that renders HTML pages into PDF documents and images using the Qt WebKit engine. wkhtmltopdf faithfully reproduces CSS-styled pages including headers, footers, table of contents, and page breaks.

Prêt pour agents

Installation agent prête

Cet actif peut être installé après choix du runtime, vérification du plan et exécution de la commande adaptée.

Native · 98/100Policy : autoriser
Surface agent
Tout agent MCP/CLI
Type
Skill
Installation
Single
Confiance
Confiance : Established
Point d'entrée
wkhtmltopdf
Commande d'installation directe
npx -y tokrepo@latest install 215b7909-8659-11f1-9bc6-00163e2b0d79 --target codex

À exécuter après confirmation du plan en dry-run.

Introduction

wkhtmltopdf is an open-source command-line tool that uses a patched Qt WebKit rendering engine to convert HTML and CSS into high-fidelity PDF documents. It is widely used in server-side report generation, invoice rendering, and document automation pipelines.

What wkhtmltopdf Does

  • Renders HTML pages to PDF with full CSS 2.1 and partial CSS 3 support
  • Generates page headers and footers with dynamic page numbers and dates
  • Creates a clickable table of contents from heading elements automatically
  • Converts HTML to raster images (PNG, JPG, BMP, SVG) via the companion wkhtmltoimage tool
  • Accepts input from URLs, local files, or standard input for pipeline integration

Architecture Overview

wkhtmltopdf embeds a patched build of Qt WebKit that adds printing-specific features like page breaks and header/footer injection. The tool loads the HTML, waits for JavaScript execution and resource loading to complete, then renders the result to a PDF via Qt's QPrinter backend.

Self-Hosting & Configuration

  • Install from OS package managers or download static binaries from the project releases
  • Run headless on servers without a display by using xvfb-run or the patched Qt build
  • Pass options via the command line or an arguments file for repeatable builds
  • Configure proxy, cookies, and custom HTTP headers for authenticated page rendering
  • Embed in web applications using language bindings (Python: pdfkit, Ruby: wicked_pdf, Node: node-wkhtmltopdf)

Key Features

  • Faithful CSS rendering via a real browser engine rather than ad-hoc parsers
  • JavaScript execution support for dynamic content and charting libraries
  • Custom headers and footers with HTML templates and variable substitution
  • Page break control with CSS properties (page-break-before, page-break-after)
  • Batch conversion of multiple URLs or files into a single combined PDF

Comparison with Similar Tools

  • Puppeteer / Playwright — use headless Chromium for more modern CSS/JS support but require Node.js
  • WeasyPrint — Python-based HTML-to-PDF with modern CSS but no JavaScript execution
  • Prince — commercial engine with superior CSS Paged Media support
  • Pandoc — converts Markdown/HTML to PDF via LaTeX; different rendering approach
  • pdf-lib / jsPDF — programmatic PDF creation in JS; wkhtmltopdf takes HTML input

FAQ

Q: Is wkhtmltopdf still maintained? A: The project is in maintenance mode. It works well for existing use cases but new features are unlikely. For modern CSS/JS, consider Puppeteer or Playwright.

Q: Can it run on a headless server? A: Yes. The patched Qt build supports headless operation. On older systems, use xvfb-run as a fallback.

Q: How do I handle pages that require authentication? A: Pass cookies with --cookie or custom headers with --custom-header to authenticate requests.

Q: Does it support CSS Grid and Flexbox? A: Support is limited because the underlying Qt WebKit engine predates widespread Grid and Flexbox adoption. Use Puppeteer for modern layouts.

Sources

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires