Obrazy a přiložené soubory Aspose.Note FOSS pro Python
Aspose.Note FOSS for Python gives direct access to both embedded images and attached files stored inside OneNote .one Obsah je vystaven prostřednictvím Image a) AttachedFile typy uzlů.
Vytvoření obrázků
Každý obrázek v dokumentu OneNote je reprezentován formou: Image Použijte. GetChildNodes(Image) k rekurzivnímu získání všech obrázků z dokumentu:
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)")Vlastnosti obrázku
| Vlastnictví | Typ: | Popis: |
|---|---|---|
FileName | `str | None` |
Bytes | bytes | První data obrazu (formát odpovídá originálu, např. PNG, JPEG) |
Width | `float | None` |
Height | `float | None` |
AlternativeTextTitle | `str | None` |
AlternativeTextDescription | `str | None` |
HyperlinkUrl | `str | None` |
Tags | list[NoteTag] | OneNote tagové připojené k tomuto obrázku |
Uložení obrázků s bezpečnými názvy souborů
Kdy? FileName je: None nebo obsahuje znaky, které nejsou bezpečné pro souborový systém. Před uložením dezinfikovat:
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)Výběr obrázků na stránku
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)Zkontrolovat obrázek a hypertextové odkazy
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)Zjistit formát souboru snímku z bajtů
Pythonův. imghdr modul (Python ≤ 3.12) nebo struct modul dokáže rozpoznat formát snímku od prvních bajtů:
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)Vytáhnout přiložené soubory
Vestavěné soubory jsou uložené jako: AttachedFile uzly:
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)")Vlastnosti souboru připojeného
| Vlastnictví | Typ: | Popis: |
|---|---|---|
FileName | `str | None` |
Bytes | bytes | Neprodlený obsah souboru |
Tags | list[NoteTag] | OneNote značky připojené k tomuto uzlu |
Zkontrolujte značky na obrázcích a přílohách
Oba dva. Image a) AttachedFile uzly podporují OneNote tagy:
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}")Zhrnutí: Obraz vs. Příložený soubor
| Významné vlastnosti | Image | AttachedFile |
|---|---|---|
FileName | Ano (jméno původního obrázku) | Ano (původní název souboru) |
Bytes | Byty surového snímku | První byty souboru |
Width / Height | Ano (vyjádřené rozměry) | Ne, ne. |
AlternativeTextTitle/Description | Ano , ano . | Ne, ne. |
HyperlinkUrl | Ano , ano . | Ne, ne. |
Tags | Ano , ano . | Ano , ano . |
Replace(node) metoda | Ano , ano . | Ne, ne. |
Tipy.
- Vždy se střež proti …
Nonejména souborů.img.FileNameje:Nonekdyž soubor neměl v zdrojovém dokumentu žádný název. img.BytesNikdy není.Nonea je vždy surový binární obsah; může být nulové bajty pro místo držící obrázky.- Použití:
Page.GetChildNodes(Image)místo:Document.GetChildNodes(Image)Pro rozsah výběru na jednu stránku. - Úřad pro bezpečnost a ochranu zdraví
Image.Replace(image)metoda nahrazuje obsah jednoho obrazového uzlu jiným v paměti; ukládání zpět na.onenení podporována.