Kuvat ja liitetiedostot — Aspose.Note FOSS Python:lle
Aspose.Note FOSS for Python gives direct access to both embedded images and attached files stored inside OneNote .one osatiedostot. Sisältö on esitetty kautta Image ja AttachedFile solmutyypit.
Kuvien poiminta
Jokainen kuva OneNote-asiakirjassa esitetään Image solmulla. Käytä GetChildNodes(Image) kaikkien kuvien hakemiseen asiakirjasta rekursiivisesti:
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)")Kuvan ominaisuudet
| Ominaisuus | Tyyppi | Kuvaus |
|---|---|---|
FileName | `str | None` |
Bytes | bytes | Raaka kuvatieto (formaatti vastaa alkuperäistä, esim. PNG, JPEG) |
Width | `float | None` |
Height | `float | None` |
AlternativeTextTitle | `str | None` |
AlternativeTextDescription | `str | None` |
HyperlinkUrl | `str | None` |
Tags | list[NoteTag] | OneNote-tunnisteet liitettynä tähän kuvaan |
Tallenna kuvat turvallisilla tiedostonimillä
Kun FileName on None tai sisältää merkkejä, jotka eivät ole turvallisia tiedostojärjestelmälle, puhdista ennen tallentamista:
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)Kuvien poiminta sivua kohti
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)Tarkastele kuvan alt-tekstiä ja hyperlinkkejä
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)Tunnista kuvatiedoston formaatti tavuista
Python’n imghdr moduuli (Python ≤ 3.12) tai struct moduuli voi tunnistaa kuvan muodon ensimmäisistä tavuista:
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)Liitetiedostojen poiminta
Upotetut tiedostoliitteet tallennetaan muodossa AttachedFile solmut:
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)")AttachedFile-ominaisuudet
| Ominaisuus | Tyyppi | Kuvaus |
|---|---|---|
FileName | `str | None` |
Bytes | bytes | Raaka tiedoston sisältö |
Tags | list[NoteTag] | OneNote-tunnisteet liitetty tähän solmuun |
Tarkastele tageja kuvissa ja liitteissä
Molemmat Image ja AttachedFile solmut tukevat OneNote-tunnisteita:
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}")Yhteenveto: Image vs AttachedFile
| Ominaisuus | Image | AttachedFile |
|---|---|---|
FileName | Kyllä (alkuperäinen kuvan nimi) | Kyllä (alkuperäinen tiedoston nimi) |
Bytes | Kuvan raakabittit | Tiedoston raakabittit |
Width / Height | Kyllä (renderöidyt mitat) | Ei |
AlternativeTextTitle/Description | Kyllä | Ei |
HyperlinkUrl | Kyllä | Ei |
Tags | Kyllä | Kyllä |
Replace(node) menetelmä | Kyllä | Ei |
Vinkkejä
- Varmista aina, että vältät
Nonetiedostonimet.img.FileNameonNonekun tiedostolla ei ollut nimeä lähdedokumentissa. img.Bytesei koskaanNoneja on aina raakabinäärinen sisältö; se voi olla nollatavuinen paikkamerkkikuville.- Käytä
Page.GetChildNodes(Image)sen sijaanDocument.GetChildNodes(Image)rajoittaaksesi poiminnan yhdelle sivulle. - Se
Image.Replace(image)menetelmä korvaa yhden kuvan solmun sisällön toiseen in-memory; tallentaminen takaisin.oneei ole tuettu.