DEV Community

SirOnly
SirOnly

Posted on

Konvertieren eines Word-Dokuments in ein Bild mit Python

Ein Word-Dokument ist ein vielseitiges Format zur Bearbeitung von Text, Bildern, Tabellen und anderen Inhalten. Allerdings ist es nicht immer praktisch, ein Word-Dokument anzuzeigen, da dies bestimmte Anforderungen an das Anzeigegerät und das System stellt. Um dieses Problem zu lösen, ist eine gängige Methode, ein Word-Dokument in ein Bildformat umzuwandeln. Dadurch bleiben der Inhalt und das Layout des Dokuments erhalten, und eine konsistente Anzeige auf verschiedenen Plattformen und Geräten wird gewährleistet. In diesem Artikel wird beschrieben, wie man ein Word-Dokument in ein Bild umwandelt, um es anzeigen und teilen zu können.
Für diese Methode verwenden wir die Spire.Doc for Python-Bibliothek.

Die Spire.Doc for Python-Bibliothek kann von der offiziellen Website heruntergeladen oder über pip installiert werden:

pip install Spire.Doc
Enter fullscreen mode Exit fullscreen mode

Konvertieren jeder Seite eines Word-Dokuments in ein PNG-Bild

Wir können die Methode Document.SaveImageToStreams(ImageType.Bitmap) verwenden, um jede Seite des Dokuments in ein PNG-Bild umzuwandeln und eine Liste zurückzugeben. Wir haben die Möglichkeit, entweder die Bilder in der Liste als PNG-Dateien zu speichern oder alle Bilder zu speichern.
Es werden Formate wie Doc, Docx, Docm, Dot, Dotx, Dot, Odt unterstützt. Weitere Informationen zur Verwendung der Klasse FileFormat finden Sie beim Laden des Dokuments mit der Methode Document.LoadFromFile(fileName: str, fileFormat: FileFormat, password: str).
Hier sind die Schritte:

  1. Erstellen Sie ein Objekt der Klasse Document.
  2. Verwenden Sie die Methode Document.LoadFromFile(), um das Word-Dokument zu laden.
  3. Verwenden Sie die Methode Document.SaveImageToStreams(ImageType.Bitmap), um das Dokument in PNG-Bilder umzuwandeln und eine Liste zurückzugeben.
  4. Speichern Sie die Bilder in der Liste als PNG-Dateien.

Python

from spire.doc import *
from spire.doc.common import *

inputFile = "G:/Dokumente/Beispiel.docx"

# Erstellen eines Objekts der Klasse Document
doc = Document()

# Laden des Word-Dokuments
doc.LoadFromFile(inputFile)

# Konvertieren jeder Seite des Dokuments in eine Bitmap und eine Liste zurückgeben
imageStream = doc.SaveImageToStreams(ImageType.Metafile)

# Die Bitmaps in der Liste in Dateien speichern
for i, image in enumerate(imageStream):
    outputFile = f"output/Bilder/Bild_{i}.png"
    with open(outputFile, "wb") as f:
        f.write(image.ToArray())

doc.Close()
Enter fullscreen mode Exit fullscreen mode

Dokument

Word in Bilder umwandeln

Ergebnis der Konvertierung

Word in PNG umwandeln

Konvertieren eines Word-Dokuments in ein JPG-Bild

Die Methode Document.SaveImageToStreams kann Bilder nicht direkt im JPEG-Format speichern. Um die Bilder in der Liste als JPEG-Dateien zu speichern, können wir die Pillow-Bibliothek verwenden, um die Bitmaps in der Liste in das JPEG-Format umzuwandeln und in eine Datei zu speichern.

pip install Pillow
Enter fullscreen mode Exit fullscreen mode

Hier sind die Schritte:

  1. Erstellen Sie ein Objekt der Klasse Document.
  2. Verwenden Sie die Methode Document.LoadFromFile(), um das Word-Dokument zu laden.
  3. Verwenden Sie die Methode Document.SaveImageToStreams(ImageType.Bitmap), um das Dokument in PNG-Bilder umzuwandeln und eine Liste zurückzugeben.
  4. Konvertieren Sie die Bitmaps in der Liste in das JPEG-Format und speichern Sie sie in einer Datei.

Python

from spire.doc import *
from spire.doc.common import *
from PIL import Image
import io

inputFile = "G:/Dokumente/Beispiel.docx"

# Erstellen eines Objekts der Klasse Document
doc = Document()

# Laden des Word-Dokuments
doc.LoadFromFile(inputFile)

# Konvertieren jeder Seite des Dokuments in eine Bitmap und als PNG speichern
imageStream = doc.SaveImageToStreams(ImageType.Metafile)

# Verwenden von Pillow, um die PNG-Bilddaten in das JPEG-Format umzuwandeln und zu speichern
for i, image in enumerate(imageStream):
    img = Image.open(io.BytesIO(image.ToArray()))
    jpg_file = f"output/Bilder/Bild_{i}.jpg"
    img.convert("RGB").save(jpg_file, "JPEG")

doc.Close()
Enter fullscreen mode Exit fullscreen mode

Ergebnis der Konvertierung

Word in JPG umwandeln

Es ist auch möglich, andere Formate festzulegen, während Sie speichern.

Konvertieren eines Word-Dokuments in ein langes Bild

Nachdem Sie das Dokument mit Spire.Doc for Python in Bilder konvertiert haben, können Sie die Bilddaten mit Pillow zu einem langen Bild kombinieren. Hier sind die Schritte:

  1. Erstellen Sie ein Objekt der Klasse Document.
  2. Verwenden Sie die Methode Document.LoadFromFile(), um das Word-Dokument zu laden.
  3. Verwenden Sie die Methode Document.SaveImageToStreams(ImageType.Bitmap), um das Dokument in PNG-Bilder umzuwandeln und eine Liste zurückzugeben.
  4. Kombinieren Sie die Bilddaten zu einem langen Bild.
  5. Speichern Sie das kombinierte Bild.

Python

from spire.doc import *
from spire.doc.common import *
from PIL import Image
import io

inputFile = "G:/Dokumente/Beispiel.docx"

# Erstellen eines Objekts der Klasse Document
doc = Document()

# Laden des Word-Dokuments
doc.LoadFromFile(inputFile)

# Konvertieren jeder Seite des Dokuments in eine Bitmap und eine Liste zurückgeben
imageStream = doc.SaveImageToStreams(ImageType.Metafile)

# Verwenden von Pillow, um die Bilddaten zu einer langen Bild zusammenzufügen
images = []
for image in imageStream:
    img = Image.open(io.BytesIO(image.ToArray()))
    images.append(img)

combined_image = Image.new("RGB", (images[0].width, sum(img.height for img in images)))
y_offset = 0
for img in images:
    combined_image.paste(img, (0, y_offset))
    y_offset += img.height

# Speichern des kombinierten Bildes als eine lange Bild
combined_image.save("output/Bilder/kombiniertes_Bild.jpg", "JPEG")

doc.Close()
Enter fullscreen mode Exit fullscreen mode

Ergebnis der Konvertierung

Word in ein langes Bild umwandeln

In diesem Artikel wurde beschrieben, wie man mit Spire.Doc for Python ein Word-Dokument in ein Bild umwandelt. Spire.Doc for Python bietet auch viele andere Funktionen. Weitere Informationen finden Sie im Spire.Doc for Python-Tutorial. Wenn Sie Fragen haben, können Sie auch im Spire.Doc-Forum nach Antworten suchen.

Top comments (0)