Οδηγός προγραμματιστή

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`TitleNone`
Author`strNone`
CreationTime`datetimeNone`
LastModifiedTime`datetimeNone`
Level`intNone`

Εξαγωγή κειμένου

Εξέτασε ολόκληρο το κείμενο

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

Διαθέσιμες οδηγίες


Δείτε επίσης

 Ελληνικά