Gratuit et open source · MIT · Linux, Windows, macOS

Le remplaçant direct de wkhtmltopdf

wkhtmltopdf est archivé, sans nouvelle version depuis 2020. pdfkiln garde sa ligne de commande et convertit le HTML en PDF avec un Chromium à jour : votre code ne change pas.

Installer pdfkiln Le code sur GitHub

wkhtmltopdf --versionwkhtmltopdf 0.12.6 (with patched qt), pdfkiln 1.0.3, Chromium 156.0.8078.73
La réponse commence comme celle de wkhtmltopdf 0.12.6 : les bibliothèques qui lisent la version continuent de fonctionner.

Points forts

Fonctionnement

Installer

Debian et Ubuntu

Debian 12 et 13, Ubuntu 22.04 et suivantes, amd64 et arm64. Dépôt APT signé : les correctifs de sécurité de Chromium arrivent avec apt upgrade. Remplace le paquet wkhtmltox.

curl -fsS https://apt.pdfkiln.org/pdfkiln-archive-keyring.asc | sudo tee /usr/share/keyrings/pdfkiln-archive-keyring.asc > /dev/null
printf 'Types: deb\nURIs: https://apt.pdfkiln.org\nSuites: stable\nComponents: main\nSigned-By: /usr/share/keyrings/pdfkiln-archive-keyring.asc\n' \
  | sudo tee /etc/apt/sources.list.d/pdfkiln.sources
sudo apt update && sudo apt install pdfkiln

Windows

x64 ; ARM en émulation. Programme d’installation ou zip, depuis la dernière version, dans C:\Program Files\wkhtmltopdf, là où pdfkit et la plupart des guides le cherchent. Désinstallez wkhtmltopdf d’abord.

Windows Server : Expérience de bureau requise. Pas encore signés, d’où l’avertissement de SmartScreen : vérifiez le programme d’installation avec le SHA256SUMS de la version.

Docker

Image amd64 et arm64, sur Debian 13 slim, sous un utilisateur sans privilèges. À lancer avec seccomp.json : le profil par défaut de Docker, plus les espaces de noms de la sandbox de Chromium.

curl -fsSO https://raw.githubusercontent.com/Jamalofski/pdfkiln/main/docker/seccomp.json
docker run --rm -i --security-opt seccomp=seccomp.json ghcr.io/jamalofski/pdfkiln wkhtmltopdf - - < page.html > page.pdf

PHP (Composer)

PHP 7.4 ou plus récent. wkhtmltopdf et wkhtmltoimage dans vendor/bin ; le programme est téléchargé au premier usage, SHA-256 vérifié. Sur un serveur Linux, préférez le paquet Debian ou Docker, qui apportent les bibliothèques de Chromium.

composer require pdfkiln/pdfkiln

npm

Node.js 22.12 ou plus récent. Chromium est téléchargé au premier usage, SHA-256 vérifié.

npx @pdfkiln/pdfkiln wkhtmltopdf page.html page.pdf
npm install -g @pdfkiln/pdfkiln    # pdfkiln, wkhtmltopdf and wkhtmltoimage

Archives Linux et macOS

Linux x64 et ARM64, macOS ARM64, depuis la dernière version : le programme, son Chromium, wkhtmltopdf et wkhtmltoimage. Sous Linux, ajoutez les bibliothèques système de Chromium ; pdfkiln nomme celles qui manquent. Sous Debian 13 et Ubuntu 24.04 :

sudo apt install libasound2t64 libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libdbus-1-3 libexpat1 libgbm1 \
  libglib2.0-0t64 libnspr4 libnss3 libudev1 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 \
  libxkbcommon0 libxrandr2 fontconfig fonts-liberation

Sans rien installer

conv2pdf, notre service hébergé en France, convertit le HTML et les pages web en PDF avec pdfkiln, par API ou depuis n8n, Zapier et Make. Tarifs à part, et pas la ligne de commande de wkhtmltopdf.

Versions testées par l’intégration continue, avec sommes SHA-256 et attestations de provenance : gh attestation verify <fichier> --repo Jamalofski/pdfkiln.

Là où wkhtmltopdf ne s’installe plus : Ubuntu 24.04 et Debian 13, ARM64 et Apple Silicon, Docker.

Migrer en cinq minutes

Faites pointer la bibliothèque sur le wkhtmltopdf de pdfkiln, jamais sur pdfkiln, qui passe à sa propre interface. Le paquet Debian le place déjà dans le PATH.

Sûr par défaut

Les protections de wkhtmltopdf restent, et pdfkiln ajoute les siennes.

  • Fichiers locaux : aucun à part la page elle-même, sauf avec --enable-local-file-access ou --allow <chemin> ; ni .. ni un lien symbolique ne contournent --allow.
  • --kiln-block-private-network : aucune adresse de boucle locale, privée ou de lien local, métadonnées du cloud comprises, vérifiée après la résolution DNS. La réponse à CVE-2022-35583.
  • --kiln-timeout : la conversion et Chromium s’arrêtent après 120 s par défaut.
  • Rien n’est partagé entre deux appels : un profil neuf, ou avec pdfkiln serve un contexte de navigateur à lui, supprimé à la fin.

Mesuré, pas promis

Un appel complet sur la facture Odoo de deux pages du corpus, médiane, face au wkhtmltopdf 0.12.6 officiel :

SystèmeDélaiwkhtmltopdfpdfkiln
Ubuntu 24.04200 ms0,52 s1,11 s
Ubuntu 24.041 000 ms, celui d’Odoo2,13 s1,14 s
PC Windows 11200 ms1,36 s1,80 s
PC Windows 111 000 ms, celui d’Odoo2,91 s1,85 s

wkhtmltopdf attend toujours tout le --javascript-delay ; pdfkiln s’arrête dès que la page ne peut plus changer. pdfkiln serve économise le démarrage de Chromium : 0,17 s par appel sous Ubuntu.

Ubuntu sur GitHub Actions, passage d’intégration continue du 24 octobre 2026 ; Windows 11 sur un PC à 20 threads ; node dist/bench/call.js --delay 200, puis sans --delay.

pdfkiln Pro · en préparation

Factur-X, PDF/A, garanties écrites ?

pdfkiln reste gratuit, sans limites. pdfkiln Pro ajoute PDF/A-3 et Factur-X depuis vos modèles HTML actuels, des mises à jour de Chromium testées sur vos modèles, et des délais de correction et de réponse écrits.

Voir pdfkiln Pro