Extrahieren von Text und Bildern aus PDF-Dokumenten mit Python
Tags: pdf, text, extract, python
Published: 2023-09-25 06:48:15

PDF-Dokumente können verschiedene spezielle Formatierungen aufweisen, die jedoch schwer zu bearbeiten, kopieren oder durchsuchen sind. Wenn wir den Inhalt eines PDF-Dokuments verarbeiten möchten, können wir den Text und die Bilder aus dem PDF extrahieren und sie entweder mit Tools weiterverarbeiten oder direkt speichern, um sie für andere Zwecke zugänglich zu machen. In diesem Artikel wird erklärt, wie man mit Python **Text und Bilder aus PDF-Dateien extrahiert und speichert**.

- **[Extrahieren von Text aus PDF-Dateien](#extrahieren-von-text-aus-pdfdateien)**
- **[Extrahieren von Bildern aus PDF-Dateien](#extrahieren-von-bildern-aus-pdfdateien)**

Für die in diesem Artikel verwendete Methode benötigen wir [Spire.PDF for Python](https://www.e-iceblue.com/Download/Spire-PDF-Python.html), das von der offiziellen Website heruntergeladen oder direkt über pip installiert werden kann:
```
pip install Spire.PDF
```

## Extrahieren von Text aus PDF-Dateien
Die Methode **ExtractText** kann den gesamten Text einer einzelnen Seite (einschließlich Leerzeichen) extrahieren und als String zurückgeben. Daher müssen wir nur durch die Seiten des Dokuments iterieren, diese Methode verwenden, um den Text jeder Seite zu extrahieren und in eine Textdatei zu schreiben, um den Text aus der PDF-Datei zu extrahieren. Die detaillierten Schritte sind wie folgt:

- Erstellen Sie eine Instanz der Klasse **PdfDocument**.
- Verwenden Sie die Methode **PdfDocument.LoadFromFile()**, um das PDF-Dokument zu laden.
- Erstellen Sie eine Textdatei zum Speichern des extrahierten Texts.
- Iterieren Sie durch die Seiten des Dokuments und verwenden Sie die Methode **PdfPageBase.ExtractText()**, um den Text der Seite zu erhalten und in die Textdatei zu schreiben.

**Python**
```python
from spire.pdf import *
from spire.pdf.common import *

# Erstellen eines Objekts der Klasse PdfDocument
pdf = PdfDocument()

# Laden des PDF-Dokuments
pdf.LoadFromFile("Dokument.pdf")

# Erstellen einer TXT-Datei zum Speichern des extrahierten Texts
extractedText = open("output/Extrahierter_Text.txt", "w", encoding="utf-8")

# Iterieren durch die Seiten des Dokuments
for i in range(pdf.Pages.Count):
    # Seite abrufen
    page = pdf.Pages.get_Item(i)
    # Text von der Seite extrahieren
    text = page.ExtractText()
    # Text in die TXT-Datei schreiben
    extractedText.write(text + "\n")

extractedText.close()
pdf.Close()
```

**PDF-Datei**

![Extrahieren von Text und Bildern aus PDF-Dokumenten mit Python](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/11rfoubzekrryphvt3jh.png)

**Extrahierte Ergebnisse**

![Extrahieren von Text aus PDF-Dateien](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cz8x0c0qdyb3ltkxmot6.png)

## Extrahieren von Bildern aus PDF-Dateien
Die Methode zum Extrahieren von Bildern aus PDF-Dateien ähnelt der Methode zum Extrahieren von Text. Sie müssen durch die einzelnen Seiten iterieren, die Methode **ExtractImages** verwenden, um alle Bilder einer Seite als Liste zurückzugeben, und dann die Bilder in der Liste speichern. Die detaillierten Schritte sind wie folgt:

- Erstellen Sie eine Instanz der Klasse **PdfDocument**.
- Verwenden Sie die Methode **PdfDocument.LoadFromFile()**, um das PDF-Dokument zu laden.
- Erstellen Sie eine Liste.
- Iterieren Sie durch die Seiten des Dokuments und verwenden Sie die Methode **PdfPageBase.ExtractImages()**, um die Bilder auf der Seite zu erhalten und in die erstellte Liste einzufügen.
- Speichern Sie die Bilder in der Liste.

**Python**
```python
from spire.pdf import *
from spire.pdf.common import *

# Erstellen eines Objekts der Klasse PdfDocument
pdf = PdfDocument()

# Laden des PDF-Dokuments
pdf.LoadFromFile("Dokument.pdf")

# Erstellen einer Liste zum Speichern der Bilder
images = []

# Iterieren durch die Seiten des Dokuments
for i in range(pdf.Pages.Count):
    page = pdf.Pages.get_Item(i)
    for img in page.ExtractImages():
        images.append(img)

# Speichern der extrahierten Bilder
i = 0
for image in images:
    i += 1
    image.Save("output/Bilder/Bild-{0:d}.png".format(i), ImageFormat.get_Png())

pdf.Close()
```

**Extrahierte Ergebnisse**

![Extrahieren von Bildern aus PDF-Dateien](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8ewy4f96xpvfzh8ondy3.png)

Das war eine Einführung in die Extrahierung von Text und Bildern aus PDF-Dateien mit Spire.PDF for Python. Wenn Sie mehr über die Bearbeitung von PDF-Dateien erfahren möchten, besuchen Sie das [Spire.PDF for Python-Tutorial](https://www.e-iceblue.com/Tutorials/Python/Spire.PDF-for-Python/Program-Guide/Spire.PDF-for-Python-Program-Guide-Content.html). Sie können auch das [Spire.PDF-Forum](https://www.e-iceblue.com/forum/spire-pdf-f7.html) besuchen, um an Diskussionen teilzunehmen.