Créer des fichiers PDF Python

Comment créer des fichiers PDF en Python

This article was translated from English: Does it need improvement?
Translated
View the article in English

Créez des fichiers PDF en Python en using IronPDF en convertissant des chaînes HTML, des fichiers HTML ou des URLs en documents PDF avec seulement quelques lignes de code. IronPDF gère automatiquement les fonctions de rendu, de formatage et de sécurité.

Démarrage rapide : Créez un PDF en Python

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/quickstart.py
# 1. Install IronPDF: pip install ironpdf
# 2. Import the library
from ironpdf import *
# 3. Create renderer
renderer = ChromePdfRenderer()
# 4. Convert HTML to PDF
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
# 5. Save the PDF
pdf.SaveAs("output.pdf")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
# 1. Install IronPDF: pip install ironpdf
# 2. Import the library
from ironpdf import *
# 3. Create renderer
renderer = ChromePdfRenderer()
# 4. Convert HTML to PDF
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
# 5. Save the PDF
pdf.SaveAs("output.pdf")
PYTHON

L'automatisation de la création de PDFs en Python permet aux développeurs de générer des documents par programmation : factures, rapports, contrats, et certificats, sans quitter l'application. Traditionnellement, cela nécessitait de jongler avec les moteurs de mise en page et les spécifications de format, mais l'approche HTML-first d'IronPDF signifie que tout document HTML/CSS devient un PDF précis au pixel près en un seul appel de méthode.

Ce guide pratique couvre les quatre principaux flux de travail de création de PDF dans IronPDF for Python : conversion d'une chaîne HTML, conversion d'un fichier HTML local, conversion d'une URL, et application d'une protection par mot de passe avant l'exportation.

Quelle bibliothèque Python devrais-je utiliser pour créer des PDFs ?

IronPDF est une bibliothèque Python spécialement conçue pour créer des documents PDF à partir de HTML. Son API est simple : transmettez du balisage HTML (ou un chemin d'accès à un fichier, ou une URL) et recevez un objet PdfDocument que vous pouvez économiser, estampiller, fusionner ou chiffrer.

La bibliothèque enveloppe le moteur de rendu éprouvé d'IronPDF for .NET, le même moteur utilisé dans les projets .NET, Java, et Node.js, donc la sortie HTML-vers-PDF est cohérente entre les plateformes. Elle prend en charge les normes web modernes, y compris l'exécution de JavaScript, le CSS3, les polices web et les mises en page responsives.

Au-delà de la génération de PDF, IronPDF couvre tout le cycle de vie du PDF :

Veuillez noterIronPDF est disponible pour .NET, Java, Python, et Node.js. Ce guide couvre spécifiquement l'implémentation Python.

Quelles sont les conditions préalables avant de créer des PDFs ?

Pour utiliser IronPDF for Python, le logiciel suivant doit être installé :

  1. .NET 6.0 SDK : IronPDF for Python s'exécute par-dessus la bibliothèque IronPDF .NET. Téléchargez-le sur la page de téléchargement officielle de Microsoft .NET 6.0.
  2. Python 3.x : Téléchargez et installez Python depuis le site web officiel de Python. Sélectionnez l'option permettant d'ajouter Python au PATH lors de l'installation.
  3. pip : Fourni avec Python 3.4+. Vérifiez l'installation en exécutant pip --version dans votre terminal.
  4. IronPDF : Installez la bibliothèque à l'aide de pip :
pip install ironpdf

Veuillez noterSur certains systèmes, Python 2.x peut encore être la version par défaut. Dans ce cas, utilisez pip3 au lieu de pip pour installer le paquet Python 3. Si vous rencontrez des erreurs lors de l'installation, consultez notre guide de dépannage pour les problèmes OSError.

Quelle configuration de code est nécessaire avant de créer des PDF ?

Ajoutez l'instruction d'importation suivante au début de votre script Python :

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/import.py
# Import statement for IronPDF for Python
from ironpdf import *
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
# Import statement for IronPDF for Python
from ironpdf import *
PYTHON

Avant tout autre appel IronPDF, configurez une clé de licence valide en l'attribuant à l'attribut LicenseKey de License. Cela supprime le filigrane d'essai des PDFs générés. Pour des instructions détaillées sur la mise en œuvre des clés de licence, visitez le guide de configuration de la clé de licence.

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/license.py
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
PYTHON

ImportantPour créer des PDFs sans filigrane, une clé de licence valide est requise. Purchase a license or obtain a free trial license key. Sans clé de licence, IronPDF ajoute un filigrane d'essai à chaque PDF produit.

Comment convertir une chaîne HTML en document PDF ?

La méthode RenderHtmlAsPdf convertit une chaîne HTML directement en un objet PdfDocument. Passez tout balisage HTML valide en tant qu'argument de la méthode et IronPDF le rend en utilisant son moteur Chromium intégré, exécutant JavaScript et appliquant le CSS avant de produire le PDF.

Cette approche est la plus flexible pour le contenu généré dynamiquement : construisez la chaîne HTML en Python (en utilisant des moteurs de template comme Jinja2 ou un formatage de chaîne simple), puis passez-la directement au moteur de rendu. Générer une facture, par exemple, signifie remplir un modèle HTML avec les données de la commande et appeler RenderHtmlAsPdf en une seule étape.

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/html-string-to-pdf.py
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the Chromium renderer
renderer = ChromePdfRenderer()

# Convert an HTML string to a PDF document
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1><p>This is an example HTML string.</p>")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the Chromium renderer
renderer = ChromePdfRenderer()

# Convert an HTML string to a PDF document
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1><p>This is an example HTML string.</p>")
PYTHON

Comment sauvegarder le PDF généré?

Une fois la chaîne HTML convertie en une instance PdfDocument, appelez SaveAs avec un chemin d'accès au fichier cible :

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/save-html-string.py
# Save the PDF to a file
pdf.SaveAs("htmlstring_to_pdf.pdf")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
# Save the PDF to a file
pdf.SaveAs("htmlstring_to_pdf.pdf")
PYTHON

Le fichier htmlstring_to_pdf.pdf est écrit dans le répertoire de travail actuel, en conservant le contenu HTML avec la mise en forme CSS complète. Pour des techniques de rendu HTML avancées, y compris les frameworks CSS, les frameworks JavaScript et les mises en page complexes, consultez le tutoriel HTML vers PDF for Python.

Comment générer un PDF à partir d'un fichier HTML local ?

Lorsque le contenu HTML se trouve dans un fichier du système de fichiers local, RenderHtmlFileAsPdf est la méthode appropriée. Fournissez le chemin du fichier en tant qu'argument :

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/html-file-to-pdf.py
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the renderer
renderer = ChromePdfRenderer()

# Create a PDF from a local HTML file
pdf = renderer.RenderHtmlFileAsPdf("example.html")

# Save the output PDF
pdf.SaveAs("htmlfile_to_pdf.pdf")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the renderer
renderer = ChromePdfRenderer()

# Create a PDF from a local HTML file
pdf = renderer.RenderHtmlFileAsPdf("example.html")

# Save the output PDF
pdf.SaveAs("htmlfile_to_pdf.pdf")
PYTHON

IronPDF résout les chemins relatifs pour les fichiers CSS liés, les images, et les scripts relatifs à l'emplacement du fichier HTML. Le moteur de rendu charge tous les actifs associés avant de générer le PDF, de sorte que le résultat correspond à ce qu'un navigateur afficherait. Cela en fait une option fiable pour les documents modèles où le HTML et les actifs sont maintenus en tant que fichiers sur disque.

ConseilsLorsque vous travaillez avec des fichiers HTML locaux, assurez-vous que tous les actifs liés (feuilles de style, polices, images) utilisent des chemins relatifs au fichier HTML. IronPDF résout ces chemins avant le rendu, produisant un PDF complet et autonome.

Comment créer un PDF à partir d'une URL en Python ?

Utilisez RenderUrlAsPdf pour convertir une page web en ligne au format PDF. Fournissez l'URL complète en tant qu'argument :

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/url-to-pdf.py
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the renderer
renderer = ChromePdfRenderer()

# Convert a web page to PDF
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")

# Save the output PDF
pdf.SaveAs("url.pdf")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the renderer
renderer = ChromePdfRenderer()

# Convert a web page to PDF
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")

# Save the output PDF
pdf.SaveAs("url.pdf")
PYTHON

La fonction de rendu d'URL prend en charge les technologies web modernes y compris le contenu JavaScript dynamique, les appels AJAX, et les mises en page responsives. IronPDF attend que la page soit entièrement chargée, y compris l'exécution de JavaScript, avant de capturer le PDF, afin que tout le contenu dynamique soit capturé avec précision.

Où puis-je trouver d'autres exemples de conversion d'URL?

Des exemples supplémentaires pour convertir des pages web en PDFs sont disponibles sur la page exemple de code URL vers PDF. Pour les pages web nécessitant une authentification, consultez le guide sur les connexions de sites web et systèmes.

Comment puis-je personnaliser les options de formatage des PDF ?

La propriété RenderingOptions de ChromePdfRenderer contrôle la mise en forme et la présentation du PDF de sortie. Les réglages communs incluent la taille de la page, l'orientation de la page, la taille des marges, et le niveau de zoom.

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/rendering-options.py
from ironpdf import *

License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

renderer = ChromePdfRenderer()

# Configure rendering options
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 25
renderer.RenderingOptions.MarginRight = 25

# Render with custom formatting
pdf = renderer.RenderHtmlAsPdf("<h1>Custom Formatted PDF</h1><p>Content here.</p>")
pdf.SaveAs("formatted.pdf")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import *

License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

renderer = ChromePdfRenderer()

# Configure rendering options
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 25
renderer.RenderingOptions.MarginRight = 25

# Render with custom formatting
pdf = renderer.RenderHtmlAsPdf("<h1>Custom Formatted PDF</h1><p>Content here.</p>")
pdf.SaveAs("formatted.pdf")
PYTHON

Quels sont les paramètres de mise en forme disponibles ?

La propriété RenderingOptions permet de définir les paramètres relatifs au format du papier, à l'orientation de la page, aux marges et au Zoom. Le tableau ci-dessous répertorie les propriétés les plus couramment utilisées :

Propriétés de RenderingOptions couramment utilisées pour la mise en forme PDF en Python
Propriété Type de texte Description du projet
Taille du papier PdfPaperSize Tailles de page standard (A4, Lettre, Légal) ou tailles personnalisées
Orientation du papier PdfPaperOrientation Orientation de page Portrait ou Paysage
MarginTop / MarginBottom int (mm) Marges de page supérieure et inférieure en millimètres
MarginLeft / MarginRight int (mm) Marges de page gauche et droite en millimètres
HtmlHeader / HtmlFooter HtmlHeaderFooter En-têtes et pieds de page HTML avec prise en charge de numéros de page

Pour une référence complète avec des réglages supplémentaires, consultez l'exemple de code des paramètres de génération de PDF.

ConseilsPour ajouter des en-têtes et des pieds de page avec des numéros de page, utilisez les propriétés HtmlHeader et HtmlFooter sur RenderingOptions. L'exemple d'en-têtes et pieds de page démontre la syntaxe complète.

Comment sécuriser les fichiers PDF avec des mots de passe ?

Pour protéger un PDF par un mot de passe, définissez la propriété UserPassword sur l'attribut SecuritySettings de l'objet PdfDocument. Un mot de passe propriétaire peut aussi être défini pour restreindre les permissions d'édition séparément de l'accès en lecture.

Envisagez de protéger le PDF créé dans l'exemple d'URL :

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/password-protect.py
from ironpdf import *

License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")

# Set user password (required to open the PDF)
pdf.SecuritySettings.UserPassword = "sharable"

# Set owner password (controls permissions)
pdf.SecuritySettings.OwnerPassword = "admin123"

# Configure document permissions
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False

# Save the password-protected PDF
pdf.SaveAs("protected.pdf")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import *

License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")

# Set user password (required to open the PDF)
pdf.SecuritySettings.UserPassword = "sharable"

# Set owner password (controls permissions)
pdf.SecuritySettings.OwnerPassword = "admin123"

# Configure document permissions
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False

# Save the password-protected PDF
pdf.SaveAs("protected.pdf")
PYTHON

Comment fonctionne la protection par mot de passe dans la pratique ?

L'ouverture de protected.pdf dans n'importe quel lecteur de PDF demande le mot de passe utilisateur avant d'afficher le contenu du document. Le mot de passe propriétaire donne un accès administratif pour modifier les paramètres de sécurité. La configuration de AllowUserCopyPasteContent = False empêche les lecteurs de copier du texte à partir du PDF tout en autorisant l'impression.

Pour un contrôle accru sur les permissions de document, consultez l'exemple des paramètres de sécurité et de métadonnées et le guide de chiffrement et de déchiffrement de PDF.

Qu'est-ce que le code source complet ?

L'exemple combiné ci-dessous démontre les quatre flux de travail de création de PDFs en un seul script Python :

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/complete-example.py
from ironpdf import *

# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# --- HTML string to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1><p>This is an example HTML string.</p>")
pdf.SaveAs("htmlstring_to_pdf.pdf")

# --- Local HTML file to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlFileAsPdf("example.html")
pdf.SaveAs("htmlfile_to_pdf.pdf")

# --- URL to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")
pdf.SaveAs("url.pdf")

# --- Password-protected PDF ---
pdf.SecuritySettings.UserPassword = "sharable"
pdf.SecuritySettings.OwnerPassword = "admin123"
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("protected.pdf")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import *

# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# --- HTML string to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1><p>This is an example HTML string.</p>")
pdf.SaveAs("htmlstring_to_pdf.pdf")

# --- Local HTML file to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlFileAsPdf("example.html")
pdf.SaveAs("htmlfile_to_pdf.pdf")

# --- URL to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")
pdf.SaveAs("url.pdf")

# --- Password-protected PDF ---
pdf.SecuritySettings.UserPassword = "sharable"
pdf.SecuritySettings.OwnerPassword = "admin123"
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("protected.pdf")
PYTHON

IronPDF rend toutes les images et le texte avec précision tout en préservant la mise en forme. Les éléments interactifs tels que les boutons restent fonctionnels, et les champs de texte conservent leur caractère éditable dans le PDF généré.

Quelles sont les prochaines étapes pour créer des PDFs en Python ?

Ce guide a couvert les trois méthodes principales de création de PDF dans IronPDF for Python — chaîne HTML, fichier HTML local, et URL — ainsi que la protection par mot de passe pour sécuriser les fichiers de sortie. Chaque méthode produit un objet PdfDocument qui peut être traité ultérieurement : estampillé, fusionné, divisé ou chiffré avant d'être enregistré.

Prêt à étendre ces flux de travail ? Les ressources suivantes illustrent les prochaines étapes pratiques :

IronPDF nécessite une licence valide pour une utilisation en production. La licence commence à partir de $999. Start a free 30-day trial to evaluate the library without restrictions, or view licensing options for the full product suite.

Téléchargez le code source complet.

Questions Fréquemment Posées

Comment installer IronPDF for Python ?

Exécutez pip install ironpdf dans votre terminal. Vous devez également avoir Python 3.x et le SDK .NET 6.0 installés, car IronPDF for Python fonctionne sur le moteur IronPDF .NET.

Quel est le moyen le plus simple de convertir HTML en PDF en Python ?

Créez une instance ChromePdfRenderer, puis appelez renderer.RenderHtmlAsPdf('

Bonjour

'). La méthode accepte toute chaîne HTML valide et retourne un objet PdfDocument que vous pouvez sauvegarder avec pdf.SaveAs('output.pdf').

Puis-je générer un PDF à partir d'un fichier HTML local ?

Oui. Utilisez renderer.RenderHtmlFileAsPdf('chemin/vers/fichier.html'). IronPDF résout le CSS, les images et les scripts liés relativement à l'emplacement du fichier HTML avant le rendu.

Comment puis-je convertir une URL de page web en direct en PDF ?

Appelez renderer.RenderUrlAsPdf('https://exemple.com'). IronPDF attend le chargement complet de la page, y compris l'exécution de JavaScript, avant de capturer le PDF.

Comment puis-je protéger par mot de passe un PDF généré ?

Définissez pdf.SecuritySettings.UserPassword pour exiger un mot de passe pour ouvrir le fichier, et pdf.SecuritySettings.OwnerPassword pour restreindre les permissions d'édition. Appelez ensuite pdf.SaveAs pour écrire le fichier protégé.

Puis-je contrôler la taille de page et les marges des PDF générés ?

Oui. Configurez renderer.RenderingOptions.PaperSize (par exemple PdfPaperSize.A4) et définissez MarginTop, MarginBottom, MarginLeft et MarginRight en millimètres avant d'appeler une méthode de rendu.

IronPDF prend-il en charge l'exécution de JavaScript dans la conversion HTML en PDF ?

Oui. IronPDF utilise un moteur de rendu basé sur Chromium qui exécute JavaScript, traite les appels AJAX, et applique le CSS avant de générer le PDF, donc le contenu dynamique est capturé avec précision.

Puis-je fusionner ou compresser des PDF après les avoir créés ?

Oui. IronPDF fournit des méthodes séparées pour fusionner plusieurs objets PdfDocument en un seul fichier et pour compresser des PDFs existants afin de réduire la taille du fichier. Les deux opérations fonctionnent sur l'objet PdfDocument retourné par n'importe quelle méthode de rendu.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Version : 2026.5 just released
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ?
exécuter un échantillon Regardez votre code HTML se transformer en PDF.