Guides de migration · ERP
Remplacer wkhtmltopdf par pdfkiln dans Frappe et ERPNext
Frappe et ERPNext impriment avec le wkhtmltopdf du PATH. Leurs formats d’impression mettent les en-têtes et pieds de page dans des pages --header-html et --footer-html, remplies par JavaScript.
1. Installer pdfkiln
Sous Debian et Ubuntu, amd64 et arm64 : le dépôt APT signé installe /usr/bin/wkhtmltopdf, à la place du paquet wkhtmltox, et apporte les correctifs de Chromium avec apt upgrade.
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
Ailleurs : l’image Docker, les archives et le programme d’installation pour Windows.
2. Brancher Frappe et ERPNext sur pdfkiln
Rien à configurer : Frappe trouve le programme dans le PATH.
3. Vérifier
wkhtmltopdf --version
# wkhtmltopdf 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.
Ce qu’attend Frappe et ERPNext, et ce que fait pdfkiln
- Frappe cherche
qtdanswkhtmltopdf --versionpour savoir si les en-têtes et pieds de page HTML fonctionnent : pdfkiln garde(with patched qt)dans sa réponse pour cela. - Les pages d’en-tête et de pied de page exécutent leur JavaScript et chargent leurs images même avec
--disable-javascriptet--no-images, qui ne touchent que la page imprimée, comme dans wkhtmltopdf : le pied de page de Frappe remplit « Page 1 of 2 » par script. - Les lignes de tableau qui ne tiennent pas en bas d’une page passent entières à la suivante, et
theadse répète sur chaque page, comme avec wkhtmltopdf.
Testé
Les formats d’impression ERPNext 15 du corpus de 32 modèles gardent leur nombre de pages face à wkhtmltopdf 0.12.6 (Linux).
Un rendu diffère ? Ouvrez un ticket avec le HTML et les deux PDF : github.com/Jamalofski/pdfkiln/issues. Les différences connues sont listées dans le README.