Wprowadzenie

Aspose.Note FOSS for Python (aspose-note on PyPI) jest darmową, na licencji MIT biblioteką do odczytywania plików Microsoft OneNote .one i eksportowania ich do PDF w czystym Python. Wersja 26.3.2 dostarcza kompletny model obiektowy dokumentu obejmujący strony, spisy treści, węzły tekstu sformatowanego, obrazy i pliki załączone — bez konieczności instalacji Microsoft Office ani zależności od systemu Windows.


Kluczowe funkcje

Ładowanie dokumentu i wykrywanie formatu

Document jest korzeniem modelu obiektowego. Przekaż ścieżkę do pliku, aby załadować dowolny obsługiwany format OneNote. Właściwość FileFormat informuje, który format został wykryty.

from aspose.note import Document, FileFormat

doc = Document("notebook.one")
print(f"Format : {doc.FileFormat}")
print(f"Pages  : {len(list(doc))}")

Przeglądanie stron i tytułów

Strony są węzłami Page bezpośrednio pod Document. Każdy Page udostępnia metadane takie jak Author, CreationTime i Title. Węzeł Title z kolei zapewnia TitleText, TitleDate i TitleTime jako potomki RichText.

from aspose.note import Document, Page

doc = Document("notebook.one")
for page in doc.GetChildNodes(Page):
    print(f"Author  : {page.Author}")
    print(f"Created : {page.CreationTime}")
    if page.Title and page.Title.TitleText:
        print(f"Title   : {page.Title.TitleText}")

Odczytywanie zawartości Rich Text

Węzły RichText są węzłami liściowymi, które zawierają rzeczywistą treść tekstową. Iteruj obiekt RichText za pomocą standardowej pętli for — każdy element jest segmentem łańcucha znaków. Użyj Append(), aby dodać nowy tekst ze stylem.

from aspose.note import Document, Page, Outline, RichText

doc = Document("notebook.one")
for page in doc.GetChildNodes(Page):
    for rt in page.GetChildNodes(RichText):
        text = "".join(rt)
        if text.strip():
            print(text[:120])

Właściwości układu konturu

Węzły Outline udostępniają współrzędne układu: HorizontalOffset, VerticalOffset, MaxWidth, MaxHeight i MinWidth. Są one przydatne do wyodrębniania świadomego układu lub ponownego składania stron.

from aspose.note import Document, Outline

doc = Document("notebook.one")
for outline in doc.GetChildNodes(Outline):
    print(f"HOffset={outline.HorizontalOffset}  VOffset={outline.VerticalOffset}  MaxW={outline.MaxWidth}")

Budowa drzewa dokumentu

Zbuduj Document od podstaw przy użyciu CompositeNode.AppendChildLast(). Każdy typ węzła może być dodany do swojego prawidłowego rodzica: Page → Document, Outline → Page, węzły RichText → Outline.

from aspose.note import Document, Page, Outline, RichText, ParagraphStyle, Title, SaveFormat

doc = Document()
page = Page()

title_text = RichText()
title_text.Append("My New Page", ParagraphStyle())
title = Title()
title.TitleText = title_text
page.Title = title

outline = Outline()
page.AppendChildLast(outline)
doc.AppendChildLast(page)
doc.Save("new_notebook.pdf", SaveFormat.Pdf)

Eksportowanie do PDF

Document.Save() akceptuje SaveFormat.Pdf, aby zapisać PDF do ścieżki pliku lub bufora BytesIO. Eksport działa całkowicie w procesie, bez użycia zewnętrznego renderera.

import io
from aspose.note import Document, SaveFormat

doc = Document("notebook.one")

# File output
doc.Save("export.pdf", SaveFormat.Pdf)

# In-memory buffer
buf = io.BytesIO()
doc.Save(buf, SaveFormat.Pdf)
print(f"PDF bytes: {len(buf.getvalue())}")

Szybki start

pip install aspose-note-foss
from aspose.note import Document, Page, RichText, SaveFormat

doc = Document("notebook.one")

# Print all text
for page in doc.GetChildNodes(Page):
    for rt in page.GetChildNodes(RichText):
        print("".join(rt))

# Export to PDF
doc.Save("output.pdf", SaveFormat.Pdf)

Obsługiwane formaty

FormatRozszerzenieOdczytZapis
OneNote 2010.one✓—
OneNote 2007.one✓—
OneNote Online.one✓—
PDF.pdf—✓

Open Source & Licencjonowanie

Aspose.Note FOSS dla Python jest udostępniony na licencji MIT. Zainstaluj z PyPI jako aspose-note. Komercyjne użycie, redystrybucja i modyfikacja są dozwolone.


Rozpoczęcie

Powiązane zasoby