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-fossfrom 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
| Format | Rozszerzenie | Odczyt | Zapis |
|---|---|---|---|
| OneNote 2010 | .one | ✓ | — |
| OneNote 2007 | .one | ✓ | — |
| OneNote Online | .one | ✓ | — |
.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.