Extraire des images de fichiers PDF à l'aide de Python
Vous pouvez effectuer de nombreuses opérations avec des fichiers et des sources externes à l’aide de Python. L’une des opérations consiste à extraire des images de fichiers PDF en Python, ce qui est très utile lorsque le PDF est trop long et ne peut pas être géré manuellement.
Ce guide vous montre comment extraire des images de fichiers PDF en Python.
Installez la bibliothèque PyMuPDF
en Python
Pour effectuer cette opération, il faut installer la librairie PyMuPDF
en Python. Cette bibliothèque aide l’utilisateur à traiter les fichiers aux formats PDF
, XPS
, FB2
, OpenXPS
et EPUB
. C’est une bibliothèque très polyvalente connue pour ses hautes performances et sa qualité de rendu. Cependant, il n’est pas pré-installé dans Python. Pour installer cette bibliothèque, exécutez la commande suivante.
pip install PyMuPDF Pillow
Extraire des images d’un fichier PDF en Python
Maintenant, pour extraire des images d’un fichier PDF, il existe une procédure par étapes :
- Tout d’abord, toutes les bibliothèques nécessaires sont importées.
import fitz
import io
from PIL import Image
- Ensuite, le chemin vers le fichier à partir duquel les images doivent être extraites est défini. Le fichier est ouvert à l’aide de la fonction
open()
du modulefitz
.
file_path = "randomfile.pdf"
open_file = fitz.open(file_path)
- Après cela, chaque page du fichier PDF est itérée et vérifiée s’il y a des images disponibles sur chaque page.
for page_number in range(len(open_file)):
page = pdf_file[page_number]
list_image = page.getImageList()
if list_image:
print(f"{len(list_image)} images found on page {page_number}")
else:
print("No images found on page", page_number)
Dans cette étape, la fonction getImageList()
permet d’extraire toutes les images sous forme d’objets image, sous forme de liste de tuples.
- Ensuite, toutes les informations supplémentaires sur l’image, comme la taille de l’image et l’extension de l’image, sont renvoyées en utilisant la fonction
extractImage()
. Cette étape est réalisée comme une itération à l’intérieur de la première itération elle-même.
for image_number, img in enumerate(page.getImageList(), start=1):
xref = img[0]
image_base = pdf_file.extractImage(xref)
bytes_image = image_base["image"]
ext_image = base_image["ext"]
Après avoir combiné toutes ces étapes en un seul programme, vous pouvez facilement extraire toutes les images d’un fichier PDF.
Maintenant, supposons qu’il y ait 5 pages dans le fichier randomfile.pdf
. Dans ces 5 pages, il n’y a qu’une seule image dans la dernière, par exemple, la 5ème page. Ainsi, la sortie ressemblera à ceci.
0 images found on page 0
0 images found on page 1
0 images found on page 2
0 images found on page 3
0 images found on page 4
1 images found on page 5
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn