Vaizdai ir prisebti failai — Aspose.Note FOSS for Python
Aspose.Note FOSS for Python gives direct access to both embedded images and attached files stored inside OneNote .one skyriaus failai. Turinys yra prieinamas per Image ir AttachedFile mazgo tipų.
Vaizdų išskyrimas
Kiekvienas paveikslėlis OneNote dokumente yra atvaizduojamas kaip Image mazgas. Naudokite GetChildNodes(Image) norėdami gauti visus paveikslėlius iš dokumento rekursyviai:
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)")Vaizdo savybės
| Savybė | Tipas | Aprašymas |
|---|---|---|
FileName | `str | None` |
Bytes | bytes | Neapdoroti paveikslėlio duomenys (formatas atitinka originalą, pvz., PNG, JPEG) |
Width | `float | None` |
Height | `float | None` |
AlternativeTextTitle | `str | None` |
AlternativeTextDescription | `str | None` |
HyperlinkUrl | `str | None` |
Tags | list[NoteTag] | OneNote žymės, prisegtos prie šio vaizdo |
Išsaugokite vaizdus su saugiais failų pavadinimais
Kai FileName yra None arba turi simbolių, kurie nėra saugūs failų sistemai, prieš išsaugojant juos išvalykite:
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)Išskirti vaizdus iš kiekvieno puslapio
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)Patikrinkite vaizdo alternatyvų tekstą ir hipersaitus
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)Nustatykite vaizdo failo formatą iš baitų
Python’s imghdr modulis (Python ≤ 3.12) arba the struct modulis gali aptikti vaizdo formatą iš pirmų baitų:
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)Prisegtų failų išskyrimas
Įterpti failų priedai saugomi kaip AttachedFile mazgai:
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 savybės
| Savybė | Tipas | Aprašymas |
|---|---|---|
FileName | `str | None` |
Bytes | bytes | Neapdorotas failo turinys |
Tags | list[NoteTag] | OneNote žymės, prisegtos prie šio mazgo |
Patikrinkite žymas vaizduose ir prieduose
Abu Image ir AttachedFile mazgai palaiko OneNote žymes:
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}")Santrauka: Image vs AttachedFile
| Funkcija | Image | AttachedFile |
|---|---|---|
FileName | Taip (originalus vaizdo pavadinimas) | Taip (originalus failo pavadinimas) |
Bytes | Neapdoroti paveikslėlio baitai | Neapdoroti failo baitai |
Width / Height | Taip (atvaizduoti matmenys) | Ne |
AlternativeTextTitle/Description | Taip | Ne |
HyperlinkUrl | Taip | Ne |
Tags | Taip | Taip |
Replace(node) metodas | Taip | Ne |
Patarimai
- Visada saugokitės nuo
Nonefailų pavadinimų.img.FileNameyraNonekai failas šaltinio dokumente neturėjo pavadinimo. img.Bytesniekada nėraNoneir visada yra neapdorotas dvejetainis turinys; tai gali būti nulinio dydžio baitų skaičius rezervuotų paveikslėlių atveju.- Naudokite
Page.GetChildNodes(Image)vietojDocument.GetChildNodes(Image)norint apriboti išskyrimą iki vieno puslapio. - Šis
Image.Replace(image)metodas pakeičia vieno paveikslėlio mazgo turinį kitu atmintyje; išsaugojimas atgal į.onenepalaikoma.