Οδηγός προγραμματιστή
Aspose.Note FOSS for Python is a free, open-source library for reading Microsoft OneNote .one Τα αρχεία τμήματος χωρίς καμία εξάρτηση από το Microsoft Office. παρέχει ένα καθαρό δημόσιο API κάτω από την aspose.note πακέτο, μοντελοποιημένο μετά το Aspose.Note για .NET interface. Η βιβλιοθήκη είναι κατάλληλη για την αυτοματοποίηση εγγράφων, τον δείκτη περιεχομένου, τους σωλήνες εξόρυξης δεδομένων και τις ροές εργασίας αρχείων.
Αυτό το εγχειρίδιο ανάπτυξης καλύπτει την πλήρη δημόσια επιφάνεια API που είναι διαθέσιμη στην έκδοση 26.3.1, με εκτεταμένα παραδείγματα κώδικα για κάθε κύρια χαρακτηριστικό.
Εισαγωγή εγγράφων
Κατεβάστε A .one αρχείο από ένα δρομολόγιο ή μια δυαδική ροή. Document Η τάξη είναι το σημείο εισόδου για όλες τις επιχειρήσεις.
Κατεβάστε από ένα αρχείο δρόμο
from aspose.note import Document
doc = Document("MyNotes.one")Κατεβάστε από ένα δυαδικό ρεύμα
Χρήσιμο όταν διαβάζετε από το cloud storage, απαντήσεις HTTP ή μνήμη-buffers:
from pathlib import Path
from aspose.note import Document
with Path("MyNotes.one").open("rb") as f:
doc = Document(f)ΕΠΙΛΟΓΕΣ ΚΑΤΑΣΚΕΥΗΣ
Χρησιμοποιήστε LoadOptions Για να ρυθμίσετε τις προαιρετικές παραμέτρους κατά τη διάρκεια του χρόνου φόρτωσης:
from aspose.note import Document, LoadOptions
opts = LoadOptions()
opts.LoadHistory = True # Include page history in the DOM
doc = Document("MyNotes.one", opts)Σημείωση:
DocumentPasswordΥπάρχει στοLoadOptionsγια συμβατότητα API, αλλά κρυπτογραφημένα έγγραφα δεν υποστηρίζονται. Προσπαθώντας να φορτώσει ένα κρύβεται αρχείο αναρτώνταιIncorrectPasswordException.
Οργανισμός Εγγράφων (DOM)
Το μοντέλο εγγράφου OneNote είναι ένα δέντρο:
Document
└── Page (0..n)
├── Title
│ ├── TitleText (RichText)
│ ├── TitleDate (RichText)
│ └── TitleTime (RichText)
└── Outline (0..n)
└── OutlineElement (0..n)
├── RichText
├── Image
├── Table
│ └── TableRow
│ └── TableCell
│ └── RichText / Image
└── AttachedFileΚάθε κόμβος εκθέτει ParentNode και α Document ιδιότητες που περπατούν μέχρι την ρίζα. σύνθετα κόμβοι υποστηρίζουν την ιθηρία του παιδιού, FirstChild, LastChild, AppendChildLast, InsertChild, RemoveChild,και GetChildNodes(Type).
Ιταλικές σελίδες
Οι σελίδες είναι τα άμεσα παιδιά των Document.• Να τα χρησιμοποιείτε άμεσα ή να τα GetChildNodes:
from aspose.note import Document, Page
doc = Document("MyNotes.one")
for page in doc:
title = page.Title.TitleText.Text if page.Title and page.Title.TitleText else "(untitled)"
author = page.Author or "(unknown)"
print(f" {title} [by {author}]")Μετεωρολογικά στοιχεία της σελίδας:
| Ιδιοκτησία | Τύπος | Περιγραφή |
|---|---|---|
Title | `Title | None` |
Author | `str | None` |
CreationTime | `datetime | None` |
LastModifiedTime | `datetime | None` |
Level | `int | None` |
Εξαγωγή κειμένου
Εξέτασε ολόκληρο το κείμενο
from aspose.note import Document, RichText
doc = Document("MyNotes.one")
all_text = [rt.Text for rt in doc.GetChildNodes(RichText) if rt.Text]
print("\n".join(all_text))Ελέγξτε το σχήμα των αγώνων
Κάθε ένα RichText Περιέχει μια λίστα με τα TextRun Σημειώνεται ότι κάθε ρουλέτα φέρνει το δικό του TextStyle:
from aspose.note import Document, RichText
doc = Document("FormattedNotes.one")
for rt in doc.GetChildNodes(RichText):
for run in rt.TextRuns:
style = run.Style
flags = []
if style.IsBold: flags.append("bold")
if style.IsItalic: flags.append("italic")
if style.IsHyperlink: flags.append(f"link={style.HyperlinkAddress}")
print(f"{run.Text!r:40s} [{', '.join(flags)}]")Εξαγωγή hyperlinks
from aspose.note import Document, RichText
doc = Document("MyNotes.one")
for rt in doc.GetChildNodes(RichText):
for run in rt.TextRuns:
if run.Style.IsHyperlink and run.Style.HyperlinkAddress:
print(run.Text, "->", run.Style.HyperlinkAddress)Εικόνα εξαγωγής
from aspose.note import Document, Image
doc = Document("MyNotes.one")
for i, img in enumerate(doc.GetChildNodes(Image), start=1):
name = img.FileName or f"image_{i}.bin"
with open(name, "wb") as f:
f.write(img.Bytes)
print(f"Saved {name} ({img.Width}x{img.Height})")Ιδιωτικές ιδιότητες: FileName, Bytes, Width, Height, AlternativeTextTitle, AlternativeTextDescription, HyperlinkUrl, Tags.
Πάρσινο τραπέζι
from aspose.note import Document, Table, TableRow, TableCell, RichText
doc = Document("MyNotes.one")
for table in doc.GetChildNodes(Table):
print("Column widths:", [col.Width for col in table.Columns])
for r, row in enumerate(table.GetChildNodes(TableRow), start=1):
cells = row.GetChildNodes(TableCell)
row_text = [
" ".join(rt.Text for rt in cell.GetChildNodes(RichText)).strip()
for cell in cells
]
print(f"Row {r}:", row_text)Συμπληρωμένα αρχεία
from aspose.note import Document, AttachedFile
doc = Document("NotesWithAttachments.one")
for i, af in enumerate(doc.GetChildNodes(AttachedFile), start=1):
name = af.FileName or f"attachment_{i}.bin"
with open(name, "wb") as f:
f.write(af.Bytes)
print(f"Saved: {name}")Tags και αριθμητικές λίστα
Ελέγξτε τα σημεία
from aspose.note import Document, RichText, Image, Table
doc = Document("TaggedNotes.one")
for rt in doc.GetChildNodes(RichText):
for tag in rt.Tags:
print(f"RichText tag: {tag.Label} icon={tag.Icon}")
for img in doc.GetChildNodes(Image):
for tag in img.Tags:
print(f"Image tag: {tag.Label}")Ελέγξτε τις αριθμημένες λίστα
from aspose.note import Document, OutlineElement
doc = Document("NumberedNotes.one")
for oe in doc.GetChildNodes(OutlineElement):
nl = oe.NumberList
if nl:
print(f"format={nl.Format!r}")Ετικέτες Περιηγητής
Χρησιμοποιήστε DocumentVisitor Για να εφαρμόσει έναν επισκέπτη που περπατάει ολόκληρο το δέντρο εγγράφου:
from aspose.note import Document, DocumentVisitor, Page, RichText, Image
class ContentCounter(DocumentVisitor):
def __init__(self):
self.pages = 0
self.texts = 0
self.images = 0
def VisitPageStart(self, page: Page) -> None:
self.pages += 1
def VisitRichTextStart(self, rt: RichText) -> None:
self.texts += 1
def VisitImageStart(self, img: Image) -> None:
self.images += 1
doc = Document("MyNotes.one")
counter = ContentCounter()
doc.Accept(counter)
print(f"Pages: {counter.pages}, Texts: {counter.texts}, Images: {counter.images}")PDF Εξαγωγή
Η εξαγωγή PDF απαιτεί την ελεγχόμενη εξάρτηση ReportLab. Εγκαταστήστε το με:
pip install aspose-noteΒασική εξαγωγή PDF
from aspose.note import Document, SaveFormat
doc = Document("MyNotes.one")
doc.Save("output.pdf", SaveFormat.Pdf)PDF εξαγωγή με επιλογές
import io
from aspose.note import Document, SaveFormat
from aspose.note.saving import PdfSaveOptions
doc = Document("MyNotes.one")
##With save options
opts = PdfSaveOptions()
doc.Save("output.pdf", opts)
##Save to in-memory stream
buf = io.BytesIO()
doc.Save(buf, PdfSaveOptions())
pdf_bytes = buf.getvalue()Σημείωση:
PdfSaveOptions.PageIndexκαιPageCountΤα πεδία υπάρχουν, αλλά δεν μεταφέρονται στον εξαγωγέα PDF στο v26.3.1.Το σύνολο του εγγράφου εξάγεται πάντα.
Τώρα οι περιορισμοί
| Περιοχή | Στάση |
|---|---|
Διαβάστε .one ΦΙΛΟΓΡΑΦΙΑ | Πλήρως υποστηριζόμενη |
| Εξαγωγή PDF (μέσω ReportLab) | Υποστηριζόμενοι |
Γράφοντας πίσω στο .one | Δεν υλοποιήθηκε |
| Κρυπτογραφημένα έγγραφα | Δεν υποστηρίζεται (αυξήγηση) IncorrectPasswordException) |
| HTML / εικόνες / One Save μορφές | Διακήρυξη για συμβατότητα API. upgrade UnsupportedSaveFormatException |
Διαθέσιμες οδηγίες
- Ετικέτες Overview: πλήρης λίστα με στοιχεία
- Ξεκινώντας: προϋποθέσεις, εγκατάσταση και πρώτα βήματα
- Εγκατάσταση: εγκατάσταση pip και επιλεκτικές εξαρτήσεις