[Python] Extraire une page PDF en image
Il est assez simple d’effectuer l’extraction d’une page PDF en image avec Python.
Tout d’abord, il faut les librairies de manipulation de PDF et d’image :
pip install PyMuPDF
pip install Pillow
Pour extraire une page d’un PDF en image (PNG) avec le DPI que l’on souhaite :
import fitz # PyMuPDF
from PIL import Image
def pdf_to_png(pdf_path, page_num, dpi, output_path):
# Ouvrir le PDF
pdf_document = fitz.open(pdf_path)
# Vérifier que le numéro de page est valide
if page_num < 0 or page_num >= pdf_document.page_count:
print("Numéro de page invalide.")
return
# Extraire la page en image
page = pdf_document.load_page(page_num)
pix = page.get_pixmap(matrix=fitz.Matrix(dpi/72, dpi/72))
# Convertir en image PIL
img = Image.frombytes("RGB", [pix.width, pix.height], pix.samples)
# Enregistrer l'image en PNG
img.save(output_path, "PNG")
# Fermer le PDF
pdf_document.close()
if __name__ == "__main__":
pdf_path = "exemple.pdf" # Remplacez par le chemin de votre PDF
page_num = 0 # Numéro de page (0 pour la première page)
dpi = 300 # Résolution DPI souhaitée
output_path = "page.png" # Chemin de sortie de l'image
pdf_to_png(pdf_path, page_num, dpi, output_path)
print(f"Page extraite en \"{output_path}\" avec une résolution de {dpi} DPI.")