Bilder und beigefügte Dateien Aspose.Note FOSS für Python
Aspose.Note FOSS for Python gives direct access to both embedded images and attached files stored inside OneNote .one Inhalte werden über die Image und . AttachedFile Knotenarten.
Bilder extrahieren
Jedes Bild in einem OneNote-Dokument wird durch eine Image Knoten. Verwenden Sie GetChildNodes(Image) alle Bilder aus dem Dokument rekursiv abrufen:
from aspose.note import Document, Image
doc = Document("MyNotes.one")
for i, img in enumerate(doc.GetChildNodes(Image), start=1):
filename = img.FileName or f"image_{i}.bin"
with open(filename, "wb") as f:
f.write(img.Bytes)
print(f"Saved: {filename} ({img.Width} x {img.Height} pts)")Bild-Eigenschaften
| Immobilien und Vermögenswerte | Typ der | Beschreibung |
|---|---|---|
FileName | `str | None` |
Bytes | bytes | Rohbilddaten (Format entspricht dem Original, z. B. PNG oder JPEG) |
Width | `float | None` |
Height | `float | None` |
AlternativeTextTitle | `str | None` |
AlternativeTextDescription | `str | None` |
HyperlinkUrl | `str | None` |
Tags | list[NoteTag] | OneNote-Tags, die an dieses Bild angebracht sind |
Bilder mit sicheren Dateinamen speichern
Wann ? FileName ist . None oder enthält Zeichen, die für das Dateisystem unsicher sind. Sanitieren Sie vor der Speicherung:
import re
from aspose.note import Document, Image
def safe_name(name: str | None, fallback: str) -> str:
if not name:
return fallback
return re.sub(r'[<>:"/\\|?*]', "_", name)
doc = Document("MyNotes.one")
for i, img in enumerate(doc.GetChildNodes(Image), start=1):
name = safe_name(img.FileName, f"image_{i}.bin")
with open(name, "wb") as f:
f.write(img.Bytes)Bilder pro Seite extrahieren
from aspose.note import Document, Page, Image
doc = Document("MyNotes.one")
for page_num, page in enumerate(doc.GetChildNodes(Page), start=1):
images = page.GetChildNodes(Image)
print(f"Page {page_num}: {len(images)} image(s)")
for i, img in enumerate(images, start=1):
filename = f"page{page_num}_img{i}.bin"
with open(filename, "wb") as f:
f.write(img.Bytes)Überprüfen von Bild-Alttext und Hyperlinks
from aspose.note import Document, Image
doc = Document("MyNotes.one")
for img in doc.GetChildNodes(Image):
if img.AlternativeTextTitle:
print("Alt title:", img.AlternativeTextTitle)
if img.AlternativeTextDescription:
print("Alt desc:", img.AlternativeTextDescription)
if img.HyperlinkUrl:
print("Linked to:", img.HyperlinkUrl)Bilddateiformat aus Bytes erkennen
Python’s ist ein imghdr Modul (Python ≤ 3.12) oder die struct Modul kann Bildformat von den ersten Bytes an erkennen:
from aspose.note import Document, Image
doc = Document("MyNotes.one")
for img in doc.GetChildNodes(Image):
b = img.Bytes
if b[:4] == b'\x89PNG':
fmt = "png"
elif b[:2] == b'\xff\xd8':
fmt = "jpeg"
elif b[:4] == b'GIF8':
fmt = "gif"
elif b[:2] in (b'BM',):
fmt = "bmp"
else:
fmt = "bin"
name = (img.FileName or f"image.{fmt}").rsplit(".", 1)[0] + f".{fmt}"
with open(name, "wb") as f:
f.write(b)Beigefügte Dateien extrahieren
Eingebettete Dateiauflagen werden als AttachedFile Knoten:
from aspose.note import Document, AttachedFile
doc = Document("NotesWithAttachments.one")
for i, af in enumerate(doc.GetChildNodes(AttachedFile), start=1):
filename = af.FileName or f"attachment_{i}.bin"
with open(filename, "wb") as f:
f.write(af.Bytes)
print(f"Saved attachment: {filename} ({len(af.Bytes):,} bytes)")BeigefügteDatei-Eigenschaften
| Immobilien und Vermögenswerte | Typ der | Beschreibung |
|---|---|---|
FileName | `str | None` |
Bytes | bytes | Rohdateiinhalt |
Tags | list[NoteTag] | OneNote-Tags, die an diesen Knoten angeschlossen sind |
Überprüfen Sie die Tags von Bildern und Anhängen
Beide . Image und . AttachedFile Knoten unterstützen OneNote-Tags:
from aspose.note import Document, Image, AttachedFile
doc = Document("MyNotes.one")
for img in doc.GetChildNodes(Image):
for tag in img.Tags:
print(f"Image tag: {tag.Label} completedTime={tag.CompletedTime}")
for af in doc.GetChildNodes(AttachedFile):
for tag in af.Tags:
print(f"Attachment tag: {tag.Label} completedTime={tag.CompletedTime}")Zusammenfassung: Bild gegen AnlageDatei
| Merkmale | Image | AttachedFile |
|---|---|---|
FileName | Ja (Originalbezeichnung des Bildes) | Ja (ursprünglicher Dateiname) |
Bytes | Rohbild-Bytes | Rohdatei-Bytes |
Width / Height | Ja (Gestaltungsmaße) | - Nein . |
AlternativeTextTitle/Description | - Ja , das ist gut . | - Nein . |
HyperlinkUrl | - Ja , das ist gut . | - Nein . |
Tags | - Ja , das ist gut . | - Ja , das ist gut . |
Replace(node) Methode | - Ja , das ist gut . | - Nein . |
Tipps für die Kinder
- Immer vorsichtig sein.
NoneDateienamen.img.FileNameist .Nonewenn die Datei im Quelldokument keinen Namen hatte. img.Bytesist nieNoneund ist immer der Roh-Binär Inhalt; es kann Null Bytes für Platzhalter Bilder sein.- Verwendung
Page.GetChildNodes(Image)statt derDocument.GetChildNodes(Image)Umfang der Extraktion auf eine einzelne Seite. - Die
Image.Replace(image)Methode ersetzt den Inhalt eines Bildknoten mit einem anderen in-Memory; Speichern zurück zu.onewird nicht unterstützt.