Inhalte aus Word-Dokumenten zu extrahieren ermöglicht es uns, diese für andere Operationen zu verwenden, wie z.B. Inhalte in Datenbanken zu speichern, Inhalte in andere Programme zu importieren, für KI-Trainings zu verwenden und andere Dokumente zu erstellen. Mit Spire.Doc for Python ist es ein Leichtes, Text und Bilder aus Word-Dokumenten zu extrahieren, ohne aufwendiges Kopieren und Einfügen oder komplizierten Code. Dieser Artikel erklärt, wie man mit einfachem Code Text und Bildinhalte aus Word-Dokumenten extrahiert und speichert.
Spire.Doc for Python importieren
Bevor man mit diesem Tool Word-Dokumente bearbeiten kann, muss man es in das Projekt importieren. Es kann von der offiziellen Website von Spire.Doc for Python heruntergeladen oder direkt mit pip installiert werden. Der Code sieht wie folgt aus:
pip install Spire.Doc
pip install plum-dispatch==1.7.4
Musterdokument
Text aus Word-Dokument extrahieren und in TXT-Datei schreiben
Die Methode Document.GetText() von Spire.Doc für Python kann den gesamten Text aus dem Word-Dokument abrufen und als Zeichenfolge zurückgeben. Wir können die zurückgegebene Zeichenfolge in eine Textdatei zum Speichern schreiben. Die Schritte sind wie folgt:
- Ein Document-Objekt erstellen.
- Das Word-Dokument mit der Document.LoadFromFile()-Methode laden.
- Den Text aus dem Dokument mit der Document.GetText()-Methode abrufen.
- Den abgerufenen Text in eine Textdatei schreiben.
Codebeispiel
Python
Copy
from turtle import st
from spire.doc import *
from spire.doc.common import *
def WriteAllText(fname:str,text:List[str]):
fp = open(fname,"w")
for s in text:
fp.write(s)
fp.close()
inputFile = "Beispiel.docx"
outputFile = "Extrahierter Text.txt"
#Document-Objekt erstellen
document = Document()
#Word-Dokument laden
document.LoadFromFile(inputFile)
#Text aus Dokument abrufen
text = document.GetText()
#Text in Textdatei schreiben
WriteAllText(outputFile, text)
document.Close()
Extrahierter Text
Bilder aus Word-Dokument extrahieren und speichern
Das Extrahieren von Bildern ist etwas komplexer. Man muss prüfen, ob das untergeordnete Objekt des Dokumentenelements ein Bild oder ein zusammengesetztes Objekt ist. Bei einem Bild wird es gespeichert, bei einem zusammengesetzten Objekt muss geprüft werden, ob dessen untergeordnete Objekte Bilder enthalten. Die Schritte:
- Ein Document-Objekt erstellen.
- Das Word-Dokument mit der Document.loadFromFile()-Methode laden.
- Eine Warteschlange für zusammengesetzte Objekte erstellen und die Dokumentenelemente hinzufügen.
- Eine Liste zum Speichern der extrahierten Bilder erstellen.
- Die Dokumentenelemente durchlaufen und die untergeordneten Objekte jedes Knotens durchlaufen, um zu prüfen, ob es sich um ein zusammengesetztes Objekt oder Bildobjekt handelt.
- Prüfen, ob das untergeordnete Element ein Bildobjekt ist. Wenn ja, die Bilddaten extrahieren und zur Liste hinzufügen.
- Prüfen, ob das untergeordnete Element ein zusammengesetztes Objekt ist. Wenn ja, zur Warteschlange hinzufügen und weiter prüfen.
- Bilder in einen Ordner speichern.
Codebeispiel
Python
Copy
import queue
from spire.doc import *
from spire.doc.common import *
import os
outputPath = "Bilder/"
inputFile = "Beispiel.docx"
if not os.path.exists(outputPath):
os.makedirs(outputPath)
#Document-Objekt erstellen
document = Document()
#Word-Dokument laden
document.LoadFromFile(inputFile)
#Warteschlange erstellen und Dokumentenelemente hinzufügen
nodes = queue.Queue()
nodes.put(document)
#Liste erstellen
images = []
#Dokumentenelemente durchlaufen
while nodes.qsize() > 0:
node = nodes.get()
for i in range(node.ChildObjects.Count):
#Untergeordnetes Objekt des Dokumentenelements abrufen
child = node.ChildObjects.get_Item(i)
#Prüfen, ob es ein Bild ist
if child.DocumentObjectType == DocumentObjectType.Picture:
picture = child if isinstance(child, DocPicture) else None
dataBytes = picture.ImageBytes
#Zur Liste hinzufügen
images.append(dataBytes)
#Prüfen, ob es ein zusammengesetztes Objekt ist
elif isinstance(child, ICompositeObject):
#Zur Warteschlange hinzufügen
nodes.put(child if isinstance(child, ICompositeObject) else None)
#Bilder speichern
for i, item in enumerate(images):
fileName = "Bild-{}.png".format(i)
with open(outputPath+fileName,'wb') as imageFile:
imageFile.write(item)
document.Close()
Der extrahierte Text wird mit angehängten Bewertungsinformationen gespeichert. Sie können die Bewertungsinformationen direkt am Anfang des Textes löschen. Die extrahierten Bilder sind nicht mit einem Wasserzeichen versehen.
Das war eine Einführung, wie man mit Spire.Doc für Python Text und Bilder aus Word-Dokumenten extrahiert. Spire.Doc für Python unterstützt viele weitere Dokumentoperationen. Schauen Sie auf der offiziellen Website vorbei oder nehmen Sie am Spire.Doc Forum teil.
Top comments (0)