Qu'est-ce que PDFKit pour Python
PDFKit est une bibliothèque Python puissante qui sert d'interface à l'utilitaire wkhtmltopdf, utilisant le moteur WebKit pour convertir des documents HTML en fichiers PDF. Elle permet aux développeurs de créer des documents PDF professionnels tout en conservant une mise en page complexe, des styles CSS modernes, des polices intégrées, des graphiques SVG et même du JavaScript.
Le principal avantage de PDFKit est qu'il permet d'utiliser des technologies web familières (HTML, CSS) pour créer des documents, ensuite convertis en PDF avec un rendu de haute qualité. C'est l'outil idéal pour générer des rapports, des factures, des billets, des certificats et autres documents au contenu dynamique.
Fonctionnalités de la bibliothèque PDFKit
Technologies prises en charge
- HTML5 et CSS3 modernes
- Bootstrap, Tailwind CSS et autres frameworks CSS
- Graphiques SVG et polices web
- Tableaux avec mise en forme complexe
- Flexbox et mise en page Grid
- Media queries CSS
- Prise en charge de base de JavaScript
Sources de données pour la conversion
PDFKit prend en charge la conversion à partir de trois sources principales :
- URL de pages web
- Fichiers HTML locaux
- Chaînes HTML en mémoire dans l'application
Installation et configuration
Installation de la bibliothèque Python
pip install pdfkit
Installation de wkhtmltopdf
Ubuntu/Debian :
sudo apt update
sudo apt install wkhtmltopdf
macOS (via Homebrew) :
brew install --cask wkhtmltopdf
Windows : Téléchargez le fichier d'installation depuis le site officiel https://wkhtmltopdf.org/downloads.html. Des versions sont disponibles pour Windows Vista et versions ultérieures, en 32 bits et 64 bits.
CentOS/RHEL/Amazon Linux :
# Pour CentOS 7
sudo yum install wkhtmltopdf
# Pour les versions plus récentes
sudo dnf install wkhtmltopdf
Vérification de l'installation
Après l'installation, vérifiez que wkhtmltopdf est accessible dans le système :
wkhtmltopdf --version
Si la commande n'est pas trouvée, vous devrez configurer le chemin vers l'exécutable dans le code Python.
Méthodes et fonctions principales
Création de PDF à partir de différentes sources
import pdfkit
# Depuis une URL
pdfkit.from_url("https://example.com", "output.pdf")
# Depuis un fichier HTML
pdfkit.from_file("template.html", "output.pdf")
# Depuis une chaîne HTML
html_content = "<h1>Titre</h1><p>Contenu du document</p>"
pdfkit.from_string(html_content, "output.pdf")
Configuration du chemin vers wkhtmltopdf
Si wkhtmltopdf n'est pas dans la variable d'environnement PATH, vous pouvez spécifier le chemin manuellement :
config = pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf')
pdfkit.from_string(html_content, "output.pdf", configuration=config)
Génération de PDF en mémoire
Pour les applications web et les API, il est souvent nécessaire d'obtenir le PDF sous forme d'octets :
# Retourne le PDF sous forme de bytes
pdf_bytes = pdfkit.from_string(html_content, False)
# Peut être envoyé via une réponse HTTP
from flask import Response
return Response(pdf_bytes, mimetype='application/pdf')
Configuration des paramètres de génération
Options de formatage principales
options = {
'page-size': 'A4',
'margin-top': '0.75in',
'margin-right': '0.75in',
'margin-bottom': '0.75in',
'margin-left': '0.75in',
'encoding': "UTF-8",
'no-outline': Aussi dans la bibliothèque
Travailler avec les images en Rust : la bibliothèque image et bien plus
Géolocalisation et cartes en JavaScript (Node.js) : bibliothèques et outils
PhpSpreadsheet PHP : guide complet avec exemples
Génération de PDF en Rust : aperçu des bibliothèques et outils pour créer des documents PDF