Le PDF (Portable Document Format) est le format de fichier numérique le plus populaire pour l'envoi et la réception de données en ligne. Il est principalement utilisé pour préserver la mise en forme des données et sécuriser les données avec un mot de passe chiffré. L'extension .pdf est indépendante de l'application logicielle, du matériel ou du système d'exploitation.
Dans cet article, nous allons créer un fichier PDF dans le langage de programmation Python. Il existe un tas d'options en ligne, mais nous utiliserons ici une bibliothèque Python pour créer des fichiers PDF. Voici les deux bibliothèques les plus connues pour générer des documents PDF avec une ou plusieurs pages en Python :
Reportlab
PDFKit
À partir des bibliothèques Python PDF mentionnées ci-dessus, nous pouvons utiliser n'importe qui pour générer des PDF.
Examinons les deux bibliothèques l'une après l'autre.
Création de fichiers PDF à l'aide de la bibliothèque Reportlab
La bibliothèque Reportlab est un kit d'outils PDF open source gratuit qui peut être utilisé pour créer facilement des fichiers PDF. Il fournit un ensemble d'outils de dessin permettant d'ajouter des images et du texte à un endroit précis dans plusieurs pages. Vous pouvez également créer des fichiers PDF chiffrés en utilisant la méthode encryptCanvas
.
Installation
Pour installer Reportlab, le gestionnaire de paquets pip est nécessaire. Il télécharge et installe automatiquement le paquet request à l'aide de la commande pip. Il suffit de taper la commande suivante dans windows cmd ou PowerShell :
pip3 install reportlab
Remarque : Lors de l'installation de Python, il doit être ajouté à la variable d'environnement path afin d'exécuter la commande ci-dessus depuis n'importe où dans cmd ou PowerShell. Il est recommandé d'utiliser Pip3 pour Python 3+, car il s'agit de la version la plus récente.
Ouvrir un nouveau fichier Python
Pour utiliser la bibliothèque Reportlab, nous devons écrire le code dans un fichier Python et l'exécuter pour créer des fichiers PDF.
Recherchez et ouvrez le shell IDLE par défaut de Python dans la barre de recherche de Windows et appuyez sur Ctrl + N ou sélectionnez "Nouveau fichier" dans l'onglet Fichier. Cela ouvrira l'éditeur de texte pour écrire le code.
Ensuite, enregistrez le fichier sous le nom approprié. Je le nomme "createpdf.py". Le fichier se présente comme suit :

Le code suivant dessine les éléments du document et génère un PDF en quelques secondes :
# importing modules
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.lib import colors
# initializing variables with values
fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'
# creating a pdf object
pdf = canvas.Canvas(fileName)
# setting the title of the document
pdf.setTitle(documentTitle)
# creating the title by setting it's font
# and putting it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)
# creating the subtitle by setting it's font,
# colour and putting it on the canvas
pdf.setFillColorRGB(0, 0, 255)
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)
# saving the pdf
pdf.save()
La sortie PDF générée est la suivante :

EXPLICATION DU CODE
Après avoir importé tous les modules et paquets, nous avons d'abord initialisé tout le contenu qui sera écrit dans un fichier PDF.
fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'
Nous définissons maintenant le nom du canevas, le titre du document, un titre centré et un sous-titre avec les polices et la taille appropriées.
# creating a pdf object
pdf = canvas.Canvas(fileName)
# setting the title of the document
pdf.setTitle(documentTitle)
# creating the title by setting it's font
# and putting it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)
# creating the subtitle by setting it's font,
# colour and putting it on the canvas
pdf.setFillColorRGB(0, 0, 255)
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)
Enfin, nous enregistrons le fichier PDF lorsque tout est dessiné sur le canevas.
# saving the pdf
pdf.save()
Nous pouvons également utiliser les méthodes drawString
et drawText
pour créer un fichier PDF simple en utilisant Reportlab en Python.
Créer des fichiers PDF à l'aide de la bibliothèque PDFKit
La bibliothèque PDFKit est l'une des meilleures approches pour la création de fichiers PDF en Python. Il peut créer des fichiers PDF en utilisant du code HTML. Vous pouvez rendre des fichiers HTML simples et complexes ou du HTML provenant d'URL en une page PDF imprimable au pixel près. Cependant, PDFKit intègre les fonctionnalités de wkhtmltopdf pour convertir HTML en PDF. Pour installer wkhtmltopdf pour Windows, Linux et mac, visitez ce lien.
Remarque : Sous le système d'exploitation Windows, wkhtmltopdf sera installé dans les fichiers de programme.
Installation
Utilisez la commande suivante pour installer PDFKit :
pip3 install pdfkit
Création de fichiers PDF à partir d'une URL
La création de fichiers PDF à l'aide de PDFKit est très simple et se fait en une seule ligne.
import pdfkit
pdfkit.from_url('http://google.com', 'out.pdf')
Création de fichiers PDF à partir de fichiers HTML
import pdfkit
pdfkit.from_file('index.html', 'out.pdf')
Création de fichiers PDF à partir de modèles HTML
Vous pouvez transmettre des modèles HTML sous forme de chaîne de caractères pour les convertir en PDF en tant que fichier de sortie.
html_string = """
<html>
<head>
<meta name="pdfkit-page-size" content="Legal"/>
<meta name="pdfkit-orientation" content="Landscape"/>
</head>
Hello World!
</html>
"""
pdfkit.from_string(html_string, 'out.pdf')
PDFKit vous permet de créer facilement des PDF en Python à l'aide de modèles HTML.
La bibliothèque IronPDF
IronPDF est un outil utile pour créer des fichiers PDF dans des projets .NET. Une utilisation courante de cette bibliothèque est le rendu "HTML vers PDF", où HTML est utilisé comme langage de conception pour le rendu d'un document PDF.
IronPDF utilise un moteur .NET Chromium pour convertir les pages HTML en fichiers PDF. Avec la conversion de HTML en PDF, il n'est pas nécessaire d'utiliser des API complexes pour positionner ou concevoir des PDF. IronPDF prend également en charge toutes les technologies de pages web standard : HTML, ASPX, JS, CSS et images.
Il vous permet également de créer une bibliothèque PDF .NET à l'aide de HTML 5, CSS, JavaScript et d'images. Vous pouvez modifier, estampiller et ajouter des en-têtes et des pieds de page à un PDF sans effort. En outre, il facilite la lecture du texte des PDF et l'extraction des images.
Pour commencer à utiliser IronPDF, vous devez installer le paquet NuGet :
L'exemple suivant permet de créer un fichier PDF directement à partir d'une URL :
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a URL or local file path
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/")
# Export to a file or Stream
pdf.SaveAs("url.pdf")
Le code suivant vous aidera à créer un fichier PDF à partir d'un code HTML accompagné d'un CSS ou d'un JavaScript :
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
# Export to a file or Stream
pdf.SaveAs("output.pdf")
# Advanced Example with HTML Assets
# Load external html assets: Images, CSS and JavaScript.
# An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
Vous pouvez voir dans le code ci-dessus qu'il est assez simple et propre. Très peu de lignes de code sont nécessaires pour créer un fichier PDF à partir d'un code HTML. Il s'agit d'une solution rapide, fiable, qui permet de gagner du temps et d'obtenir des résultats précis.
Téléchargez IronPDF et essayez-le gratuitement en cliquant ici. Après la période d'essai, la licence commence à $749.