Εκχύλισμα κειμένου 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 Ιδιοκτησία αναφοράς

ΙδιοκτησίαΤύποςΠεριγραφή
IsBoldboolΔύσκολο κείμενο
IsItalicboolΙταλικός κείμενο
IsUnderlineboolΥπογραμμένο κείμενο
IsStrikethroughboolΣκληρό κείμενο
IsSuperscriptboolΣουπερσίστ
IsSubscriptboolΥπογραφές
FontName`strNone`
FontSize`floatNone`
FontColor`intNone`
Highlight`intNone`
Language`intNone`
IsHyperlinkboolΕίτε αυτό το τρέξιμο είναι ένα hyperlink
HyperlinkAddress`strNone`

Εξαγωγή 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.Textif rt.Text:πριν από την εκτύπωση, όπως κενό RichText Τα κενά υπάρχουν σε ορισμένα έγγραφα.
  • Στα Windows, ανακατεύουμε sys.stdout Η UTF-8 για να αποφύγει την UnicodeEncodeError όταν εκτυπώστε χαρακτήρες έξω από τη σελίδα κώδικα του συστήματος.
  • TextRun Έχει μόνο Text και Style Ετικέτες: Δεν υπάρχουν Start/End αποζημίωση ιδιότητες. να εντοπίσει το κείμενο του τρέχοντος μέσα στο γονέα RichText.Text,Αναζητώντας για run.Text Μέσα στο rt.Text με χειροκίνητο.

Δείτε επίσης

 Ελληνικά