Textentfernung Aspose.Note FOSS für Python
Aspose.Note FOSS for Python exposes the full text content of every OneNote page through the RichText Jeder Knoten. RichText enthält sowohl einen einfachen Text als auch eine .Text String und ein .TextRuns Liste der individuell gestalteten TextRun Diese Seite dokumentiert alle verfügbaren Text-Extraktionsmuster.
Alle einfachen Texte extrahieren
Der schnellste Weg, um den gesamten Text aus einem Dokument zu erhalten ist: GetChildNodes(RichText), die eine rekursive Tiefen-First-Überquerung über den gesamten DOM durchführt:
from aspose.note import Document, RichText
doc = Document("MyNotes.one")
for rt in doc.GetChildNodes(RichText):
if rt.Text:
print(rt.Text)Sammeln Sie eine Liste und schließen Sie sich an:
from aspose.note import Document, RichText
doc = Document("MyNotes.one")
all_text = "\n".join(
rt.Text for rt in doc.GetChildNodes(RichText) if rt.Text
)Text pro Seite extrahieren
Ausgenommene Texte nach Seitenbezeichnungen ordnen:
from aspose.note import Document, Page, RichText
doc = Document("MyNotes.one")
for page in doc.GetChildNodes(Page):
title = (
page.Title.TitleText.Text
if page.Title and page.Title.TitleText
else "(untitled)"
)
print(f"\n=== {title} ===")
for rt in page.GetChildNodes(RichText):
if rt.Text:
print(rt.Text)Überprüfen von Formatierungsläufen
RichText.TextRuns ist eine Liste von TextRun Objekt. Jeder Lauf umfasst einen zusammenhängenden Bereich von Zeichen mit einem einheitlichen TextStyle:
from aspose.note import Document, RichText
doc = Document("MyNotes.one")
for rt in doc.GetChildNodes(RichText):
for run in rt.TextRuns:
style = run.Style
parts = []
if style.IsBold: parts.append("bold")
if style.IsItalic: parts.append("italic")
if style.IsUnderline: parts.append("underline")
if style.IsStrikethrough: parts.append("strikethrough")
if style.IsSuperscript: parts.append("superscript")
if style.IsSubscript: parts.append("subscript")
if style.FontName: parts.append(f"font={style.FontName!r}")
if style.FontSize: parts.append(f"size={style.FontSize}pt")
label = ", ".join(parts) if parts else "plain"
print(f"[{label}] {run.Text!r}")TextStyle-Eigenschaftsbezug
| Immobilien und Vermögenswerte | Typ der | Beschreibung |
|---|---|---|
IsBold | bool | Fettgeschriebener Text |
IsItalic | bool | Kursivgeschriebener Text |
IsUnderline | bool | Unterstrichener Text |
IsStrikethrough | bool | Durchschlag durch Text |
IsSuperscript | bool | Überschrift |
IsSubscript | bool | Abonnement für die |
FontName | `str | None` |
FontSize | `float | None` |
FontColor | `int | None` |
Highlight | `int | None` |
Language | `int | None` |
IsHyperlink | bool | Ob dieser Lauf ein Hyperlink ist |
HyperlinkAddress | `str | None` |
Hyperlinks extrahieren
Hyperlinks werden auf der Webseite des TextRun - Das ist ein Level. Style.IsHyperlink:
from aspose.note import Document, RichText
doc = Document("MyNotes.one")
for rt in doc.GetChildNodes(RichText):
for run in rt.TextRuns:
if run.Style.IsHyperlink and run.Style.HyperlinkAddress:
print(f" {run.Text!r:40s} -> {run.Style.HyperlinkAddress}")Auszug von Text mit fett und unterstrichenem Schriftzug
Filter läuft durch Formatierung von Eigenschaften, um spezifische Inhalte zu isolieren:
from aspose.note import Document, RichText
doc = Document("MyNotes.one")
print("=== Bold segments ===")
for rt in doc.GetChildNodes(RichText):
for run in rt.TextRuns:
if run.Style.IsBold and run.Text.strip():
print(f" {run.Text.strip()!r}")
print("\n=== Highlighted segments ===")
for rt in doc.GetChildNodes(RichText):
for run in rt.TextRuns:
if run.Style.Highlight is not None and run.Text.strip():
color = f"#{run.Style.Highlight & 0xFFFFFF:06X}"
print(f" [{color}] {run.Text.strip()!r}")Text aus Titelblöcken extrahieren
Die Titel der Seiten sind: RichText Knoten innerhalb der Title Objekt. Sie werden nicht von einem Top-Level zurückgegeben GetChildNodes(RichText) Auf der Seite, es sei denn, Sie schließen die Title Sie können direkt auf sie zugreifen:
from aspose.note import Document, Page
doc = Document("MyNotes.one")
for page in doc.GetChildNodes(Page):
if page.Title:
if page.Title.TitleText:
print("Title text:", page.Title.TitleText.Text)
if page.Title.TitleDate:
print("Title date:", page.Title.TitleDate.Text)
if page.Title.TitleTime:
print("Title time:", page.Title.TitleTime.Text)Text aus Tabellen extrahieren
Tabellenzellen enthalten: RichText Kinder. Verwenden Sie in der Nähe von GetChildNodes Anrufe:
from aspose.note import Document, Table, TableRow, TableCell, RichText
doc = Document("MyNotes.one")
for table in doc.GetChildNodes(Table):
for row in table.GetChildNodes(TableRow):
row_values = []
for cell in row.GetChildNodes(TableCell):
cell_text = " ".join(
rt.Text for rt in cell.GetChildNodes(RichText)
).strip()
row_values.append(cell_text)
print(row_values)Text-Operationen im Speicher
Ersetzen von Text
RichText.Replace(old_value, new_value) Ersetzt Text im Speicher über alle Laufzeiten:
from aspose.note import Document, RichText
doc = Document("MyNotes.one")
for rt in doc.GetChildNodes(RichText):
rt.Replace("TODO", "DONE")
##Changes are in-memory only; saving back to .one is not supportedEinen Text hinzufügen .
from aspose.note import Document, RichText, TextStyle
doc = Document("MyNotes.one")
for rt in doc.GetChildNodes(RichText):
rt.Append(" [reviewed]") # appends with default style
break # just the first node in this exampleAusgeschriebenen Text in Datei speichern
import sys
from aspose.note import Document, RichText
if hasattr(sys.stdout, "reconfigure"):
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
doc = Document("MyNotes.one")
lines = [rt.Text for rt in doc.GetChildNodes(RichText) if rt.Text]
with open("extracted.txt", "w", encoding="utf-8") as f:
f.write("\n".join(lines))
print(f"Extracted {len(lines)} text blocks.")Tipps für die Kinder
GetChildNodes(RichText)auf einerDocumentDie Suche nach den vollständig Tree, einschließlich aller Seiten, Umrisse und Umschlagelemente. Rufen Sie es auf eine bestimmtePageUmfang zu begrenzen.- Überprüfen Sie immer .
rt.Text(oderif rt.Text:) vor dem Drucken als leer.RichTextin einigen Dokumenten existieren. - Auf Windows neu konfigurieren
sys.stdoutUTF-8 zu vermeiden.UnicodeEncodeErrorbei dem Drucken von Zeichen außerhalb der Systemcode-Seite. TextRunhat nurTextund .StyleDie Kommission hat dieStart/EndOffset-Eigenschaften; um den Text eines Laufs innerhalb des Elternteils zu findenRichText.Text, Suche nachrun.Textinnerhalb von:rt.Textmanuell.