Εκχύλισμα κειμένου Aspose.Note FOSS για Python
Aspose.Note FOSS for Python exposes the full text content of every OneNote page through the RichText Κύκλος - Κάθε RichText Και οι δύο έχουν ένα κείμενο .Text Σκηνή και A .TextRuns Ετικέτες Ατομικά Στυλ TextRun Αυτή η σελίδα τεκμηριώνει κάθε διαθέσιμο πρότυπο εξόρυξης κειμένου.
Εξέταση όλων των κειμένων
Ο πιο γρήγορος τρόπος για να βγάλεις όλο το κείμενο από ένα έγγραφο είναι: GetChildNodes(RichText), η οποία εκτελεί μια επαναλαμβανόμενη βάθος-πρώτη διαδρομή σε ολόκληρο το DOM:
from aspose.note import Document, RichText
doc = Document("MyNotes.one")
for rt in doc.GetChildNodes(RichText):
if rt.Text:
print(rt.Text)Συλλέξτε μια λίστα και ενταχθείτε:
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
)Εξαγωγή κειμένου ανά σελίδα
Σχεδιάστε το κείμενο με τίτλο σελίδας:
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)Ελέγξτε το Formatting Runs
RichText.TextRuns Είναι μια λίστα με TextRun Κάθε ράντα καλύπτει μια συνολική σειρά χαρακτήρων με ένα ομοιόμορφο 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 Ιδιοκτησία αναφοράς
| Ιδιοκτησία | Τύπος | Περιγραφή |
|---|---|---|
IsBold | bool | Δύσκολο κείμενο |
IsItalic | bool | Ιταλικός κείμενο |
IsUnderline | bool | Υπογραμμένο κείμενο |
IsStrikethrough | bool | Σκληρό κείμενο |
IsSuperscript | bool | Σουπερσίστ |
IsSubscript | bool | Υπογραφές |
FontName | `str | None` |
FontSize | `float | None` |
FontColor | `int | None` |
Highlight | `int | None` |
Language | `int | None` |
IsHyperlink | bool | Είτε αυτό το τρέξιμο είναι ένα hyperlink |
HyperlinkAddress | `str | None` |
Εξαγωγή Hyperlinks
Οι υπερσυνδέσεις αποθηκεύονται στο TextRun ΕΠΙΤΡΟΦΗ - ΔΙΑΒΑΣΤΕ 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}")Εξαγωγή σκληρού και υπογραμμισμένου κειμένου
Ο φίλτρο τρέχει με τη μορφοποίηση ιδιότητες για να απομονώσει συγκεκριμένο περιεχόμενο:
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}")Εξαγωγή κειμένου από τα μπλοκ τίτλου
Οι τίτλοι σελίδων είναι RichText Οι κόμβοι μέσα στο Title Δεν επιστρέφονται από ένα ανώτερο επίπεδο. GetChildNodes(RichText) στην σελίδα, εκτός εάν συμπεριλάβετε το Title Εισαγωγή: Δώστε τις άμεσες πρόσβαση σε:
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)Εξαγωγή κειμένου από τα τραπέζια
Τα κελιά του τραπέζου περιέχουν RichText Παιδιά: Χρησιμοποιήστε το NESTED GetChildNodes Τη φωνή:
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)Ενεργοποίηση In-Memory Text
Αντικαταστήστε το κείμενο
RichText.Replace(old_value, new_value) αντικαθιστά το κείμενο σε μνήμη σε όλες τις διαδρομές:
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 supportedΕνημερώστε ένα κείμενο Run
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 exampleΑποθηκεύστε το κείμενο που έχει αφαιρεθεί σε αρχείο
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.")Tips
GetChildNodes(RichText)ΣΤΟ ΑDocumentΑναζητάμε το Ολόκληρο δέντρο περιλαμβάνει όλες τις σελίδες, τα εξώφυλλα και τα στοιχεία της εξόδου. καλέστε το σε ένα συγκεκριμένοPageπεριορισμού του πεδίου.- Πάντα να ελέγχεις
rt.Text(ήif rt.Text:πριν από την εκτύπωση, όπως κενόRichTextΤα κενά υπάρχουν σε ορισμένα έγγραφα. - Στα Windows, ανακατεύουμε
sys.stdoutΗ UTF-8 για να αποφύγει τηνUnicodeEncodeErrorόταν εκτυπώστε χαρακτήρες έξω από τη σελίδα κώδικα του συστήματος. TextRunΈχει μόνοTextκαιStyleΕτικέτες: Δεν υπάρχουνStart/Endαποζημίωση ιδιότητες. να εντοπίσει το κείμενο του τρέχοντος μέσα στο γονέαRichText.Text,Αναζητώντας γιαrun.TextΜέσα στοrt.Textμε χειροκίνητο.