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.