Introduktion
Aspose.Note FOSS för Python (aspose-note på PyPI) är ett fritt, MIT-licensierat bibliotek för att läsa Microsoft OneNote .one-filer och exportera till PDF i ren Python. Version 26.3.2 levereras med en komplett dokumentobjektmodell som täcker sidor, innehållsförteckningar, riktextnoder, bilder och bifogade filer — ingen Microsoft Office-installation eller Windows-beroende krävs.
Nyckelfunktioner
Laddning av dokument och formatidentifiering
Document är roten i objektmodellen. Ange en filsökväg för att ladda något stödd OneNote-format. FileFormat-egenskapen rapporterar vilket format som identifierades.
from aspose.note import Document, FileFormat
doc = Document("notebook.one")
print(f"Format : {doc.FileFormat}")
print(f"Pages : {len(list(doc))}")
Genomgång av sidor och titlar
Sidor är Page-noder direkt under Document. Varje Page exponerar metadata såsom Author, CreationTime och Title. Title-noden i sin tur tillhandahåller TitleText, TitleDate och TitleTime som RichText-barn.
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}")
Läsning av Rich Text-innehåll
RichText noder är lövnodernas som bär det faktiska textinnehållet. Iterera ett RichText objekt med en standard for loop — varje element är ett strängsegment. Använd Append() för att lägga till ny text med en stil.
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])
Översikt över layout-egenskaper
Outline noder exponerar layoutkoordinater: HorizontalOffset, VerticalOffset, MaxWidth, MaxHeight och MinWidth. Dessa är användbara för layoutmedveten extraktion eller återkomposition av sidor.
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}")
Konstruktion av dokumentträd
Bygg en Document från grunden med hjälp av CompositeNode.AppendChildLast(). Varje nodtyp kan läggas till sin giltiga förälder: Page → Document, Outline → Page, RichText noder → 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)
Exportering till PDF
Document.Save() accepterar SaveFormat.Pdf för att skriva en PDF till en filsökväg eller en BytesIO buffer. Exporten körs helt i processen utan någon extern renderare.
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())}")
Snabbstart
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)
Stödda format
| Format | Filändelse | Läs | Skriv |
|---|---|---|---|
| OneNote 2010 | .one | ✓ | — |
| OneNote 2007 | .one | ✓ | — |
| OneNote Online | .one | ✓ | — |
.pdf | — | ✓ |
Öppen källkod & licensiering
Aspose.Note FOSS för Python släpps under MIT License. Installera från PyPI som aspose-note. Kommersiell användning, vidaredistribution och modifiering är alla tillåtna.