pdfkit – génération de PDF depuis HTML

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

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':                    

Recommendations