Tekstin poiminta — Aspose.Note FOSS for Python
Aspose.Note FOSS for Python exposes the full text content of every OneNote page through the RichText solmu. Jokainen RichText sisältää sekä tavallisen tekstin .Text merkkijono ja .TextRuns lista yksilöllisesti tyylitellyistä TextRun segmenttejä. Tämä sivu dokumentoi jokaisen saatavilla olevan tekstin poimintamallin.
Poimi kaikki tavallinen teksti
Nopein tapa saada kaikki teksti asiakirjasta on GetChildNodes(RichText), joka suorittaa rekursiivisen syvyyssuuntaisen läpikäynnin koko DOM:in läpi:
from aspose.note import Document, RichText
doc = Document("MyNotes.one")
for rt in doc.GetChildNodes(RichText):
if rt.Text:
print(rt.Text)Kerää listaan ja yhdistä:
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
)Poimi teksti per sivu
Järjestä poimittu teksti sivun otsikon mukaan:
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)Tarkastele muotoilurunoja
RichText.TextRuns on luettelo TextRun objektia. Jokainen suoritus kattaa yhtenäisen merkkialueen, jossa on tasainen 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-ominaisuuden viite
| Ominaisuus | Tyyppi | Kuvaus |
|---|---|---|
IsBold | bool | Lihavoitu teksti |
IsItalic | bool | Kursivoitu teksti |
IsUnderline | bool | Alleviivattu teksti |
IsStrikethrough | bool | Yliviivattu teksti |
IsSuperscript | bool | Yläindeksi |
IsSubscript | bool | Alaindeksi |
FontName | `str | None` |
FontSize | `float | None` |
FontColor | `int | None` |
Highlight | `int | None` |
Language | `int | None` |
IsHyperlink | bool | Onko tämä osa hyperlinkki |
HyperlinkAddress | `str | None` |
Poimi hyperlinkit
Hyperlinkit tallennetaan TextRun tasolla. Tarkista 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}")Poimi lihavoitu ja korostettu teksti
Suodata osioita muotoiluominaisuuksien perusteella eristääksesi tiettyä sisältöä:
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}")Poimi teksti otsikkolohkoista
Sivun otsikot ovat RichText solmut sisällä Title objekti. Ne eivät palautu ylä‑tason GetChildNodes(RichText) sivulla, ellei sisällytä Title alipuu. Pääset niihin suoraan:
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)Poimi teksti tauluista
Taulukon solut sisältävät RichText lapsia. Käytä sisäkkäisiä GetChildNodes kutsuja:
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)Muistissa tapahtuvat tekstitoiminnot
Korvaa teksti
RichText.Replace(old_value, new_value) korvaa tekstiä muistissa kaikissa suorituksissa:
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 supportedLisää tekstijakso
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 exampleTallenna poimittu teksti tiedostoon
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.")Vinkkejä
GetChildNodes(RichText)onDocumentetsii koko puu, joka sisältää kaikki sivut, sisällysluettelot ja sisällysluettelon elementit. Kutsu sitä tietylläPagerajoittaaksesi laajuutta.- Tarkista aina
rt.Text(taiif rt.Text:)RichText) ennen tulostamista, koska tyhjät. - solmut esiintyvät joissakin asiakirjoissa.
sys.stdoutWindowsissa, määritä uudelleenUnicodeEncodeErrorUTF-8:ksi välttääksesi. TextRunkun tulostetaan merkkejä, jotka eivät kuulu järjestelmän koodisivulle.Textsisältää vainStylejaStart/Endkenttiä. Ei oleRichText.Text,offset-ominaisuuksia; paikantaaksesi runin tekstin vanhemmanrun.Text, etsirt.Textmanuaalisesti.