Extraire une page d’un fichier PDF avec Python

Comment extraire une page d’un fichier PDF avec Python

Rédigé par AZYAT Abdelilah

L’objectif est de savoir comment extraire une page à partir d’un fichier PDF de 157 pages en utilisant le langage Python.

Tout d’abord, j’aimerais bien vous donnez un aperçu sur le type d’automatisation des tâches à réaliser avec le langage python sur la manipulation des documents PDF à l’aide du module PyPDF2. Pour plus de détails à propos de ce module, n’hésitez pas de consulter le lien suivant :

https://pypi.org/project/PyPDF2/

Les opérations qu’on peut faire avec ce module sont les suivants :

  • Extraction de texte à partir de PDF
  • Décryptage des PDF
  • Rédaction de PDF
  • Copier des pages
  • Rotation des pages
  • Pages superposées
  • Cryptage des PDF

Commençant par un premier exemple pour lire un fichier PDF et afficher le nombre de pages, ensuite un morceaux de texte à partir d’une page: 

import PyPDF2

pdfFile_object =
open(‘desparite-regionale.pdf’, ‘rb’)
pdfReader = PyPDF2.PdfFileReader(pdfFile_object)
print(pdfReader.numPages)  # to store the pages number of the document
pageObj = pdfReader.getPage(2# to get the page 2
print(pageObj.extractText())  # to extract text from page 2
pdfFile_object.close()

 

Notez bien qu’il faut installer d’abord module PyPDF2, par exemple pour Windows ; on peut utiliser la commande pip install PyPDF2.

L’exemple suivant contient 9 lignes de code (avec les commentaires) pour extraire une page, pour moi j’ai choisi la page 20 en utilisant le même module car le comptage de pages commence de zéro :

import PyPDF2
#   Extracting a page from PDF file containing 157 pages

objFile = open(‘desparite-regionale.pdf’, ‘rb’# open an existing pdf file in read binary mode
pdfReader = PyPDF2.PdfFileReader(objFile)
pdfWriter = PyPDF2.PdfFileWriter() 
# create a blank pdf document
pageObj = pdfReader.getPage(20# getting the page 20
pdfWriter.addPage(pageObj)  # add the page 20 to the blank document
pdfOutputFile = open(‘myPage21.pdf’, ‘wb’# oen the new document in write_binary mode
pdfWriter.write(pdfOutputFile)
pdfOutputFile.close()

On obtient une seule page enregistrée dans un fichier dont le format est PDF aussi et sauvegardé également dans le même dossier du projet.