Les PDF sont un moyen courant de partager du texte. PDF signifie Portable Document Format et utilise l’extension de fichier .pdf. Il a été créé au début des années 1990 par Adobe Systems.
Lire des documents PDF en utilisant python peut vous aider à automatiser une grande variété de tâches.
Dans ce tutoriel, nous allons apprendre à extraire du texte d’un fichier PDF en Python.
Démarrons.
- Lecture et extraction de texte d’un fichier PDF en Python
- Utiliser PyPDF2 pour extraire le texte du PDF
- 1. Installer le paquet
- 2. Importer PyPDF2
- 3. Ouvrir le PDF en mode lecture binaire
- 4. Utiliser PyPDF2.PdfFileReader() pour lire le texte
- Code complet pour lire un texte PDF en utilisant PyPDF2
- Utiliser PDFplumber pour extraire du texte
- 1. Installer le paquet
- 2. Importer pdfplumber
- 3. Utiliser PDFplumber pour lire des pdfs
Lecture et extraction de texte d’un fichier PDF en Python
Pour les besoins de ce tutoriel, nous créons un exemple de PDF de 2 pages. Vous pouvez le faire en utilisant n’importe quel traitement de texte comme Microsoft Word ou Google Docs et enregistrer le fichier en tant que PDF.
Texte sur la page 1:
Hello World. This is a sample PDF with 2 pages. This is the first page.
Texte sur la page 2:
This is the text on Page 2.
Utiliser PyPDF2 pour extraire le texte du PDF
Vous pouvez utiliser PyPDF2 pour extraire le texte d’un PDF. Voyons comment cela fonctionne.
1. Installer le paquet
Pour installer PyPDF2 sur votre système, entrez la commande suivante sur votre terminal. Vous pouvez en savoir plus sur le gestionnaire de paquets pip.
pip install pypdf2
2. Importer PyPDF2
Ouvrir un nouveau carnet python et commencer par importer PyPDF2.
import PyPDF2
3. Ouvrir le PDF en mode lecture binaire
Commencer par ouvrir le PDF en mode lecture binaire en utilisant la ligne de code suivante :
pdf = open('sample_pdf.pdf', 'rb')
Cela créera un objet PdfFileReader pour notre PDF et le stockera dans la variable ‘pdf’.
4. Utiliser PyPDF2.PdfFileReader() pour lire le texte
Maintenant vous pouvez utiliser la méthode PdfFileReader() de PyPDF2 pour lire le fichier.
pdfReader = PyPDF2.PdfFileReader(pdf)
Pour obtenir le texte de la première page du PDF, utilisez les lignes de code suivantes :
page_one = pdfReader.getPage(0)print(page_one.extractText())
Nous obtenons la sortie suivante :
Hello World. !This is a sample PDF with 2 pages. !This is the first page. !Process finished with exit code 0
Ici, nous avons utilisé la méthode getPage pour stocker la page comme un objet. Puis nous avons utilisé la méthode extractText() pour obtenir le texte de l’objet page.
Le texte que nous obtenons est de type String.
De même, pour obtenir la deuxième page du PDF, utilisez :
page_one = pdfReader.getPage(1)print(page_one.extractText())
Nous obtenons la sortie comme :
This is the text on Page 2.
Code complet pour lire un texte PDF en utilisant PyPDF2
Le code complet de cette section est donné ci-dessous :
import PyPDF2pdf = open('sample_pdf.pdf', 'rb')pdfReader = PyPDF2.PdfFileReader(pdf)page_one = pdfReader.getPage(0)print(page_one.extractText())
Si vous remarquez, le formatage de la première page est un peu décalé dans la sortie ci-dessus. Ceci est dû au fait que PyPDF2 n’est pas très efficace pour lire les PDFs.
Heureusement, Python possède une meilleure alternative à PyPDF2. Nous allons l’examiner dans la suite.
Utiliser PDFplumber pour extraire du texte
PDFplumber est un autre outil qui peut extraire du texte d’un PDF. Il est plus puissant par rapport à PyPDF2.
1. Installer le paquet
Commençons par installer PDFplumber.
pip install pdfplumber
2. Importer pdfplumber
Commencez par importer PDFplumber en utilisant la ligne de code suivante :
import pdfplumber
3. Utiliser PDFplumber pour lire des pdfs
Vous pouvez commencer à lire des PDF en utilisant PDFplumber avec le morceau de code suivant :
with pdfplumber.open("sample_pdf.pdf") as pdf: first_page = pdf.pages print(first_page.extract_text())
Ceci va obtenir le texte de la première page de notre PDF. La sortie se présente comme:
Hello World. This is a sample PDF with 2 pages. This is the first page. Process finished with exit code 0
Vous pouvez comparer cela avec la sortie de PyPDF2 et voir comment PDFplumber est meilleur en ce qui concerne le formatage.
PDFplumber fournit également des options pour obtenir d’autres informations à partir du PDF.
Par exemple, vous pouvez utiliser .page_number pour obtenir le numéro de page.
print(first_page.page_number)
Sortie :