Introduzione
Aspose.Note FOSS per Python (aspose-note su PyPI) è una libreria gratuita, con licenza MIT, per la lettura di file Microsoft OneNote .one e l’esportazione in PDF in puro Python. La versione 26.3.2 include un modello object completo del documento che copre pagine, sommari, nodi di testo formattato, immagini e file allegati — non è necessaria alcuna installazione di Microsoft Office o dipendenza da Windows.
Caratteristiche principali
Caricamento del documento e rilevamento del formato
Document è la radice del modello object. Fornisci un percorso file per caricare qualsiasi formato OneNote supportato. La proprietà FileFormat indica quale formato è stato rilevato.
from aspose.note import Document, FileFormat
doc = Document("notebook.one")
print(f"Format : {doc.FileFormat}")
print(f"Pages : {len(list(doc))}")
Scorrere pagine e titoli
Le pagine sono nodi Page direttamente sotto il Document. Ogni Page espone metadati come Author, CreationTime e Title. Il nodo Title a sua volta fornisce TitleText, TitleDate e TitleTime come figli 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}")
Lettura del contenuto Rich Text
RichText nodes sono i nodi foglia che contengono il testo effettivo. Itera un oggetto RichText con un ciclo standard for — ogni elemento è un segmento di stringa. Usa Append() per aggiungere nuovo testo con uno stile.
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])
Proprietà di layout Outline
Outline nodes espongono le coordinate di layout: HorizontalOffset, VerticalOffset, MaxWidth, MaxHeight e MinWidth. Queste sono utili per l’estrazione consapevole del layout o per la ricomposizione delle pagine.
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}")
Costruzione dell’albero del documento
Crea un Document da zero usando CompositeNode.AppendChildLast(). Ogni tipo di nodo può essere aggiunto al suo genitore valido: Page → Document, Outline → Page, nodi 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)
Esportazione in PDF
Document.Save() accetta SaveFormat.Pdf per scrivere un PDF su un percorso file o in un buffer BytesIO. L’esportazione avviene interamente in-processo senza alcun renderer esterno.
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())}")
Avvio rapido
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)
Formati supportati
| Formato | Estensione | Leggi | Scrivi |
|---|---|---|---|
| OneNote 2010 | .one | ✓ | — |
| OneNote 2007 | .one | ✓ | — |
| OneNote Online | .one | ✓ | — |
.pdf | — | ✓ |
Open Source e Licenze
Aspose.Note FOSS per Python è rilasciato sotto la Licenza MIT. Installa da PyPI come aspose-note. L’uso commerciale, la redistribuzione e la modifica sono tutti consentiti.