Home  >  Article  >  Backend Development  >  Extract text and images from Word documents using Python

Extract text and images from Word documents using Python

王林
王林Original
2023-08-28 18:21:071265browse

Extracting content from Word documents allows us to use them for other operations, such as storing content in databases, importing content into other programs, for artificial intelligence training and creating other documents. Spire.Doc for Python makes it easy to extract text and images from Word documents without extensive copy-and-paste or complex coding. This article explains how to extract and save text and image content from a Word document using simple code.

Import Spire.Doc for Python

Before you can use this tool to edit a Word document, you must import it into a project. You can download it from the Spire.Doc for Python official website or install it directly with pip. The code looks like this:

pip install Spire.Doc
pip install plum-dispatch==1.7.4
Enter full screen mode Exit full screen mode

Musterdokument

Extract text and images from Word documents using Python

Extract text from Word document and write to TXT file

The

Document.GetText()

method of Spire.Doc for Python can retrieve all text in a Word document and return it as a string. We can write the returned string into a text file for storage. The steps are as follows:

    Creates a
  • Document object.
  • Use the
  • Document.LoadFromFile() method to load a Word document.
  • Get text from a document using the
  • Document.GetText() method.
  • Den abgerufenen Text in eine Textdatei schreiben.

Code Bespiel

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()
Enter full screen mode Exit full screen mode

Extrahierter Text

Extract text and images from Word documents using Python

Bilder aus Word-Dokument extrahieren und speichern

Das Extrahieren von Bildern ist etwas komplexer. den, ob dessen untergeordnete Objekte Bilder enthalten . Die Schritte:

    Creates a
  • Document object.
  • Use the
  • Document.LoadFromFile() method to load a Word document.
  • Eine Warteschlange für zusammengesetzte Objekte erstellen und die Dokumentenelemente hinzufügen.
  • Eine Liste zum Speichern der extrahierten Bilder erstellen.
  • Die Dokumentenelemente durchlaufen and 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.

Code Bespiel

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()
Enter full screen mode Exit full screen mode

Extrahierte Bilder

Extract text and images from Word documents using Python

Der extrahierte Text wird mit angehängten Bewertungsinformationen gespeichert. Sie können die Bewertungsinformationen direkt am Anfang des Textes löschen.

This is an introduction to using Spire.Doc for Python to extract text and images from Word documents. Spire.Doc for Python supports many other document operations. Check out the official website or join the Spire.Doc forum.

The above is the detailed content of Extract text and images from Word documents using Python. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn