Comment extraire du texte d'un PDF avec Python
Tags: python, pdf, texte
Published: 2023-12-14 09:45:17

Les fichiers PDF sont souvent créés sous forme de documents statiques difficiles à modifier directement. Extraire du texte d'un PDF vous permet de le convertir dans un format modifiable, tel qu'un document de traitement de texte. Cela facilite les modifications, les mises à jour et les révisions, ce qui vous fait gagner du temps et des efforts par rapport à la recréation manuelle du contenu à partir de zéro. Cet article explorera comment **extraire du texte à partir de documents PDF en utilisant Python**.

## Prérequis
Pour extraire du texte d'un PDF en utilisant Python, vous pouvez utiliser différentes bibliothèques qui offrent des capacités d'analyse des PDF. Une bibliothèque populaire à cet effet est [Spire.PDF for Python](https://www.e-iceblue.com/Introduce/pdf-for-python.html).

Avant de commencer le processus de codage, vous devez installer Spire.PDF for Python en utilisant pip en exécutant la commande suivante :
```python
pip install Spire.Pdf
```

## Extraire du texte d'un PDF avec Python
Spire.PDF for Python offre aux développeurs une large gamme de fonctionnalités pour extraire du texte à partir de documents PDF dans différents scénarios. Par exemple, vous pouvez extraire du texte à partir d'un PDF entier, extraire du texte d'une page PDF spécifique ou extraire du texte d'une zone rectangulaire d'une page PDF.

**Exemple 1. Extraire du texte d'un PDF entier en Python**

Voici un exemple de comment vous pouvez extraire du texte d'un fichier PDF en utilisant Python et Spire.PDF for Python :
```python
from spire.pdf import *
from spire.pdf.common import *

# Créer une instance de la classe PdfDocument
pdf = PdfDocument()

# Charger le document PDF
pdf.LoadFromFile("Sample.pdf")

# Créer un fichier TXT pour enregistrer le texte extrait
extractedText = open("output/ExtractedText.txt", "w", encoding="utf-8")

# Parcourir les pages du document
for i in range(pdf.Pages.Count):
    # Obtenir la page
    page = pdf.Pages.get_Item(i)   
    # Créer un objet PdfTextExtractot
    textExtractor = PdfTextExtractor(page)
    # Créer un objet PdfTextExtractOptions
    extractOptions = PdfTextExtractOptions()
    # Définir IsExtractAllText sur True
    extractOptions.IsExtractAllText = True
    # Extraire le texte de la page en conservant les espaces blancs
    text = textExtractor.ExtractText(extractOptions)
    # Écrire le texte dans le fichier texte
    extractedText.write(text + "\n")

extractedText.close()
pdf.Close()
```
**Exemple 2. Extraire du texte d'une page PDF spécifique en Python**

Voici un exemple de comment vous pouvez extraire du texte d'une page PDF spécifique en utilisant Python et Spire.PDF for Python :
```python
from spire.pdf.common import *
from spire.pdf import *

# Créer un objet PdfDocument
doc = PdfDocument()

# Charger un document PDF
doc.LoadFromFile('C:/Users/Administrator/Desktop/Terms of service.pdf')

# Obtenir une page spécifique
page = doc.Pages[1]

# Créer un objet PdfTextExtractot
textExtractor = PdfTextExtractor(page)

# Créer un objet PdfTextExtractOptions
extractOptions = PdfTextExtractOptions()

# Définir IsExtractAllText sur True
extractOptions.IsExtractAllText = True

# Extraire le texte de la page en conservant les espaces blancs
text = textExtractor.ExtractText(extractOptions)

# Écrire le texte dans un fichier txt
with open('output/TextOfPage.txt', 'w') as file:
    file.write(text)
```
**Exemple 3. Extraire du texte d'une zone rectangulaire d'une page PDF en Python**

Voici un exemple de comment vous pouvez extraire du texte d'une zone rectangulaire d'une page PDF en utilisant Python et Spire.PDF for Python :
```python
from spire.pdf.common import *
from spire.pdf import *

# Créer un objet PdfDocument
doc = PdfDocument()

# Charger un document PDF
doc.LoadFromFile('C:/Users/Administrator/Desktop/Terms of service.pdf')

# Obtenir une page spécifique
page = doc.Pages[1]

# Créer un objet PdfTextExtractot
textExtractor = PdfTextExtractor(page)

# Créer un objet PdfTextExtractOptions
extractOptions = PdfTextExtractOptions()

# Définir la zone rectangulaire
extractOptions.ExtractArea = RectangleF(0.0, 100.0, 890.0, 80.0)

# Extraire le texte de la zone rectangulaire en conservant les espaces blancs
text = textExtractor.ExtractText(extractOptions)

# Écrire le texte dans un fichier txt
with open('output/TextOfRectangle.txt', 'w') as file:
    file.write(text)
```

## Sujets connexes

- [Python : Trouver et surligner du texte dans un PDF](https://www.e-iceblue.com/Tutorials/Python/Spire.PDF-for-Python/Program-Guide/Text/Python-Find-and-Highlight-Text-in-PDF.html)
- [Python : Ajouter des hyperliens dans un PDF](https://www.e-iceblue.com/Tutorials/Python/Spire.PDF-for-Python/Program-Guide/Link/Python-Add-Hyperlinks-to-PDF.html)
- [Python : Créer des listes ordonnées, non ordonnées et imbriquées dans un document PDF](https://www.e-iceblue.com/Tutorials/Python/Spire.PDF-for-Python/Program-Guide/List/Python-Create-Ordered-Unordered-and-Nested-Lists-in-PDF.html)
- [Python : Ajouter, remplacer ou supprimer des images dans un document PDF](https://www.e-iceblue.com/Tutorials/Python/Spire.PDF-for-Python/Program-Guide/Image/Python-Add-Replace-or-Remove-Images-in-a-PDF-Document.html)
- [Python : Compter le nombre de pages dans un fichier PDF](https://www.e-iceblue.com/Tutorials/Python/Spire.PDF-for-Python/Program-Guide/Page-Setting/Python-Count-the-Number-of-Pages-in-a-PDF-File.html)