Teksta izguve — Aspose.Note FOSS for Python
Aspose.Note FOSS for Python atklāj pilna teksta saturu katrā OneNote lapā caur RichText mezglu. Katrs RichText satur gan vienkārša teksta .Text virkni, gan .TextRuns sarakstu ar individuāli stilizētiem TextRun segmentiem. Šī lapa dokumentē visus pieejamos teksta izguves modeļus.
Izvilkt visu vienkāršo tekstu
Ātrākais veids, kā iegūt visu tekstu no dokumenta, ir GetChildNodes(RichText), kas veic rekursīvu dziļuma pirmās kārtas pārlūkošanu visā DOM:
from aspose.note import Document, RichText
doc = Document("MyNotes.one")
for rt in doc.GetChildNodes(RichText):
if rt.Text:
print(rt.Text)Savāc sarakstā un pievieno:
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
)Izvilkt tekstu katrā lapā
Organizēt izvilkto tekstu pēc lapas nosaukuma:
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)Pārbaudīt formatēšanas fragmentus
RichText.TextRuns ir saraksts ar TextRun objektiem. Katrs posms aptver nepārtrauktu rakstzīmju diapazonu ar vienotu 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 īpašības atsauce
| Īpašība | Tips | Apraksts |
|---|---|---|
IsBold | bool | Treknraksts |
IsItalic | bool | Slīpraksts |
IsUnderline | bool | Pasvītrots teksts |
IsStrikethrough | bool | Pārsvītrots teksts |
IsSuperscript | bool | Augšraksts |
IsSubscript | bool | Apakšraksts |
FontName | str | None | Fonta ģimenes nosaukums |
FontSize | float | None | Fonta lielums punktos |
FontColor | int | None | Fonta krāsa kā ARGB vesels skaitlis |
Highlight | int | None | Fona izcēluma krāsa kā ARGB vesels skaitlis |
Language | int | None | Valodas identifikators (LCID) |
IsHyperlink | bool | Vai šis fragments ir hipersaite |
HyperlinkAddress | str | None | URL, kad IsHyperlink ir True |
Izvilkt hipersaites
Hipersaites tiek glabātas TextRun līmenī. Pārbaudiet 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}")Izgūt treknu un izcelto tekstu
Filtrs darbojas, izmantojot formatēšanas īpašības, lai izolētu konkrētu saturu:
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}")Izvilkt tekstu no virsraksta blokiem
Lapas nosaukumi ir RichText mezgli iekš Title objekta. Tie netiek atgriezti ar augšējā līmeņa GetChildNodes(RichText) lapā, ja vien neiekļaujat Title apakškoku. Piekļūstiet tiem tieši:
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)Izvilkt tekstu no tabulām
Tabulas šūnas satur RichText bērnus. Izmantojiet ligzdotus GetChildNodes izsaukumus:
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)Teksta operācijas atmiņā
Aizstāt tekstu
RichText.Replace(old_value, new_value) aizstāj tekstu atmiņā visos posmos:
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 supportedPievienot teksta fragmentu
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 exampleSaglabāt izvilkto tekstu failā
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.")Padomi
GetChildNodes(RichText)uzDocumentmeklē visu koku, ieskaitot visas lapas, struktūras un struktūras elementus. Izsauciet to uz konkrētuPage, lai ierobežotu apjomu.- Vienmēr pārbaudiet
rt.Text(vaiif rt.Text:) pirms drukāšanas, jo dažos dokumentos pastāv tukšiRichTextmezgli. - Windows vidē pārkonfigurējiet
sys.stdoutuz UTF-8, lai izvairītos noUnicodeEncodeError, drukājot rakstzīmes, kas pārsniedz sistēmas kodējuma lapu. TextRunsatur tikaiTextunStylelaukus. NavStart/Endnobīdes īpašību; lai atrastu skrējiena tekstu vecākāRichText.Text, meklējietrun.Textiekšrt.Textmanuāli.