Passer au contenu du pied de page
OUTILS PDF PYTHON

Comment convertir un PDF en image en Python

PDF (Portable Document Format) est le format de fichier le plus populaire pour transférer des données sur Internet, car il préserve le formatage du contenu et aide à sécuriser les données avec des autorisations de sécurité. Il existe des scénarios où nous devons convertir des fichiers PDF en images JPG ou tout autre format d'image tel que PNG, BMP, TIFF, ou GIF. Il existe de nombreuses ressources en ligne disponibles pour la conversion JPG, mais ne serait-il pas génial de créer notre propre outil de conversion de PDF en image en Python ?

Qu'est-ce que Python ?

Python est un langage de programmation de haut niveau utilisé pour créer des applications logicielles, des sites web, automatiser des tâches, effectuer des analyses de données et réaliser des tâches d'Intelligence Artificielle et d'Apprentissage Automatique. C'est aussi un langage de script car il est interprété, ce qui le rend plus puissant en termes de développement et de test rapides.

Pour créer un convertisseur de PDF en image, nous devons avoir Python 3+ installé sur l'ordinateur. Téléchargez et installez la dernière version depuis le site officiel.

Dans cet article, nous allons créer notre propre application de conversion d'images en utilisant des bibliothèques Python PDF vers image. À cette fin, nous allons utiliser deux des bibliothèques Python les plus populaires : PDF2Image et PyMuPDF.

Comment convertir des fichiers PDF en images en Python

  1. Installez la bibliothèque Python pour convertir le PDF en image.
  2. Chargez un fichier PDF existant depuis n'importe quel emplacement.
  3. Utilisez des méthodes de conversion.
  4. Itérez à travers les pages du fichier.
  5. Enregistrez chaque page sous forme d'image JPG ou PNG en utilisant la méthode save.

Créer un nouveau fichier Python

  1. Ouvrez l'application Python IDLE et appuyez sur les touches Ctrl + N. L'éditeur de texte s'ouvrira. Vous pouvez utiliser votre éditeur de texte préféré pour cela.
  2. Enregistrez le fichier sous le nom pdf2image.py, dans le même emplacement que le fichier PDF que vous souhaitez convertir en images.

Le fichier PDF d'entrée que nous allons utiliser contient 28 pages et est le suivant :

Comment convertir un PDF en image avec Python : Figure 1

Convertir des fichiers PDF en images en utilisant la bibliothèque PDF2Image

1. Installer la bibliothèque Python PDF2Image

PDF2Image est un module qui encapsule pdftocairo et pdftoppm. Il fonctionne sous Python 3.7+ pour convertir un PDF en un objet image PIL. Son historique de versions précédentes montre qu'il ne fait qu'encapsuler pdftoppm pour convertir des PDF en images et ne fonctionnait que sur Python 3+.

Pour installer le package pdf2image, ouvrez votre invite de commande Windows ou Windows PowerShell et utilisez la commande pip suivante :

pip install pdf2image
pip install pdf2image
SHELL

Pip (Preferred Installer Program) est le gestionnaire de packages pour Python. Il télécharge et installe des packages logiciels tiers qui offrent des fonctionnalités non présentes dans la bibliothèque standard Python.

Remarque : Pour exécuter cette commande depuis n'importe quel emplacement de ligne de commande, Python doit être ajouté au PATH. Pour Python 3+, il est recommandé d'utiliser pip3 car c'est la version mise à jour de pip.

2. Installer Poppler

Poppler est une bibliothèque libre et open-source pour travailler avec des fichiers PDF. Elle est utilisée pour rendre les fichiers PDF, lire le contenu, et modifier le contenu à l'intérieur des fichiers PDF. Elle est couramment utilisée par les utilisateurs de Linux. Cependant, pour Windows, nous devons télécharger la dernière version de Poppler.

Pour Windows

Les utilisateurs de Windows peuvent télécharger la dernière version de Poppler ici : version @oschwartz10612. Vous devrez ensuite ajouter le dossier bin/ au variable environnement PATH.

Pour Mac

Les utilisateurs de Mac devront également installer Poppler. Il peut être installé en utilisant Brew :

brew install poppler
brew install poppler
SHELL

Pour Linux

La plupart des distributions Linux sont livrées avec les utilitaires de ligne de commande pdftoppm et pdftocairo. Si ces utilitaires ne sont pas installés, vous pouvez utiliser le Package Manager pour installer poppler-utils.

Pour les plateformes indépendantes (utilisation de conda)

  1. Installez poppler :

    conda install -c conda-forge poppler
    conda install -c conda-forge poppler
    SHELL
  2. Installez pdf2image :

    pip install pdf2image
    pip install pdf2image
    SHELL

Maintenant tout est prêt, commençons avec le code pour convertir les PDF en images.

3. Code pour convertir des fichiers PDF en images

Le code suivant effectuera la conversion d'images du fichier PDF d'entrée :

from pdf2image import convert_from_path

# Notify the user that the process is starting
print("Please wait while the file is being loaded.")
file = convert_from_path('file.pdf')

# Iterate over all pages in the PDF file
for i in range(len(file)):
    # Update user on progress
    print("Progress: " + str(round(i / len(file) * 100)) + "%")
    # Save each page as a JPG image file
    file[i].save('page' + str(i + 1) + '.jpg', 'JPEG')

# Notify the user that the conversion is successful
print("Conversion Successful")
from pdf2image import convert_from_path

# Notify the user that the process is starting
print("Please wait while the file is being loaded.")
file = convert_from_path('file.pdf')

# Iterate over all pages in the PDF file
for i in range(len(file)):
    # Update user on progress
    print("Progress: " + str(round(i / len(file) * 100)) + "%")
    # Save each page as a JPG image file
    file[i].save('page' + str(i + 1) + '.jpg', 'JPEG')

# Notify the user that the conversion is successful
print("Conversion Successful")
PYTHON

Dans le code ci-dessus, nous ouvrons d'abord le fichier en utilisant la méthode convert_from_path. Cette méthode ouvre le fichier situé à l'emplacement spécifié. Ensuite, nous parcourons chaque page du fichier PDF à convertir en images JPG. Enfin, la méthode save est utilisée pour enregistrer chaque page convertie au format image JPG. Exécutez ensuite le programme et patientez jusqu'à la fin de la conversion. Les fichiers images de sortie sont enregistrés dans le même dossier que le programme.

Comment convertir un PDF en image avec Python : Figure 2

Comment convertir un PDF en image avec Python : Figure 3

Convertir des fichiers PDF en images en utilisant la bibliothèque PyMuPDF

1. Installer la bibliothèque Python PyMuPDF

PyMuPDF est une liaison Python étendue à MuPDF, qui est un visualiseur, un moteur de rendu et une boîte à outils léger pour e-books, PDF et XPS. Il peut être utilisé pour convertir des PDF en d'autres formats comme JPG ou PNG. PyMuPDF fonctionne sur les versions Python 3.7+.

Pour installer le package PyMuPDF, ouvrez votre invite de commande Windows ou Windows PowerShell et utilisez la commande pip suivante :

pip install pymupdf
pip install pymupdf
SHELL

Notez que PyMuPDF ne nécessite pas de bibliothèques supplémentaires contrairement au package PDF2Image.

2. Code pour convertir des fichiers PDF en images

Le code suivant importera le module fitz de PyMuPDF, afin de pouvoir convertir le PDF en images :

import fitz  # PyMuPDF

# Open the PDF file
doc = fitz.open("file.pdf")

# Iterate over each page in the document
for x in range(len(doc)):
    page = doc.load_page(x)  # Load a specific page
    pix = page.get_pixmap()  # Render page to image
    output = "output/pdfpage" + str(x + 1) + ".png"  # Specify output path
    pix.save(output)  # Save the image to the output path

# Close the document
doc.close()
import fitz  # PyMuPDF

# Open the PDF file
doc = fitz.open("file.pdf")

# Iterate over each page in the document
for x in range(len(doc)):
    page = doc.load_page(x)  # Load a specific page
    pix = page.get_pixmap()  # Render page to image
    output = "output/pdfpage" + str(x + 1) + ".png"  # Specify output path
    pix.save(output)  # Save the image to the output path

# Close the document
doc.close()
PYTHON

Dans le code ci-dessus, le nom du fichier est passé comme argument à la méthode fitz.open pour ouvrir le fichier. Ensuite, je parcours l'intégralité du document et charge chaque page séparément. La méthode get_pixmap est utilisée pour convertir chaque page du document en pixels d'image, et l'image résultante est enregistrée dans le dossier de sortie à l'aide de la méthode save. Enfin, le document ouvert est fermé pour libérer la mémoire.

Comparé à PDF2Image, PyMuPDF est plus rapide pour convertir des PDF en PNG. PDF2Image peut être lent pour le format PNG en raison de son taux de compression. La sortie est la même que celle de PDF2Image :

Comment convertir un PDF en image avec Python : Figure 4

Rendu de PDF en image en C

La bibliothèque IronPDF

IronPDF est une bibliothèque utilisée pour générer, lire et manipuler des fichiers PDF. Sa spécialité réside dans le rendu HTML en PDF avec l'aide du moteur Chromium. Cette fonctionnalité la rend populaire auprès des développeurs qui ont besoin de convertir des fichiers HTML ou des URLs en documents PDF. De plus, il fournit la conversion de divers formats en fichiers PDF.

Vous pouvez également rasteriser un fichier PDF en images avec seulement deux lignes de code. Le code suivant montre comment convertir des PDF en différents formats d'image :

using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();
var PDF = Renderer.RenderUrlAsPdf("https://example.com");
PDF.SaveAs("html.pdf");

// Rasterize the PDF
List<string> Images = PDF.RasterizeToImageFiles(ImageType.Png);
using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();
var PDF = Renderer.RenderUrlAsPdf("https://example.com");
PDF.SaveAs("html.pdf");

// Rasterize the PDF
List<string> Images = PDF.RasterizeToImageFiles(ImageType.Png);
Imports IronPdf

Private Renderer = New IronPdf.ChromePdfRenderer()
Private PDF = Renderer.RenderUrlAsPdf("https://example.com")
PDF.SaveAs("html.pdf")

' Rasterize the PDF
Dim Images As List(Of String) = PDF.RasterizeToImageFiles(ImageType.Png)
$vbLabelText   $csharpLabel

Téléchargez IronPDF et essayez-le gratuitement .

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

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi