Inleiding
Aspose.Note FOSS for Python (aspose-note on PyPI) is een gratis, MIT-gelicentieerde bibliotheek voor het lezen van Microsoft OneNote .one bestanden en het exporteren naar PDF in pure Python. Versie 26.3.2 wordt geleverd met een volledig documentobjectmodel dat pagina’s, inhoudsopgaven, rich-text-knooppunten, afbeeldingen en bijgevoegde bestanden omvat — geen Microsoft Office-installatie of Windows-afhankelijkheid vereist.
Belangrijkste functies
Document laden en formaatdetectie
Document is de root van het objectmodel. Geef een bestandspad op om elk ondersteund OneNote formaat te laden. De FileFormat eigenschap geeft aan welk formaat werd gedetecteerd.
from aspose.note import Document, FileFormat
doc = Document("notebook.one")
print(f"Format : {doc.FileFormat}")
print(f"Pages : {len(list(doc))}")
Doorlopen van pagina’s en titels
Pagina’s zijn Page knooppunten direct onder de Document. Elk Page biedt metadata zoals Author, CreationTime en Title. Het Title knooppunt biedt op zijn beurt TitleText, TitleDate en TitleTime als RichText kinderen.
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}")
Rich Text-inhoud lezen
RichText nodes zijn de bladknopen die de feitelijke tekstinhoud dragen. Itereer over een RichText object met een standaard for loop — elk item is een tekenreekssegment. Gebruik Append() om nieuwe tekst met een stijl toe te voegen.
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])
Layouteigenschappen schetsen
Outline nodes onthullen lay-outcoördinaten: HorizontalOffset, VerticalOffset, MaxWidth, MaxHeight en MinWidth. Deze zijn nuttig voor lay-outbewuste extractie of hercompositie van pagina’s.
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}")
Constructie van documentboom
Bouw een Document vanaf nul met behulp van CompositeNode.AppendChildLast(). Elk knooptype kan worden toegevoegd aan zijn geldige ouder: Page → Document, Outline → Page, RichText nodes → 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)
Exporteren naar PDF
Document.Save() accepteert SaveFormat.Pdf om een PDF naar een bestandspad of een BytesIO buffer te schrijven. De export wordt volledig in-process uitgevoerd zonder externe renderer.
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())}")
Snelstart
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)
Ondersteunde formaten
| Formaat | Extensie | Lezen | Schrijven |
|---|---|---|---|
| OneNote 2010 | .one | ✓ | — |
| OneNote 2007 | .one | ✓ | — |
| OneNote Online | .one | ✓ | — |
.pdf | — | ✓ |
Open source & licenties
Aspose.Note FOSS for Python is uitgebracht onder de MIT-licentie. Installeer van PyPI als aspose-note. Commercieel gebruik, herdistributie en modificatie zijn allemaal toegestaan.