Εξαγωγή κειμένου

Εξαγωγή κειμένου

Εξαγωγή κειμένου

Aspose.PDF FOSS for .NET provides several mechanisms for extracting text from PDF σελίδες. TextFragmentAbsorber είναι το κύριο εργαλείο - σάρωση περιεχομένου σελίδας Επιστροφή δομημένη TextFragment αντικείμενα με θέση, γραμματοσειρά και στυλ Πληροφορίες .


Βασική εκχύλισμα κειμένου

TextAbsorber Εξέτασε ολόκληρο το κείμενο από μια σελίδα ή έγγραφο ως μία στήλη.

using var doc = Document.Open(pdfBytes);

var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);

string pageText = absorber.Text;

Εξαγωγή κειμένου κομμάτια

TextFragmentAbsorber Εξασφαλίζει τα αποτελέσματα.Κάθε TextFragment Περιλαμβάνει το εκχυλίσμενο κείμενο, τη θέση του στη σελίδα και τις λεπτομέρειες γραμματισμού.

using var doc = Document.Open(pdfBytes);

var absorber = new TextFragmentAbsorber();
doc.Pages[1].Accept(absorber);

foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Text: {fragment.Text}");
    Console.WriteLine($"Position: ({fragment.Position.XIndent}, {fragment.Position.YIndent})");
    Console.WriteLine($"Font: {fragment.TextState.Font.FontName}");
}

Αναζήτηση με τακτικές εκφράσεις

Πάρτε ένα πρότυπο Regex για να TextFragmentAbsorber Να βρει συγκεκριμένο κείμενο.

var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);  // Search all pages

foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Found: {fragment.Text}");
}

Τμήμα κειμένου

Κάθε ένα TextFragment Μπορεί να περιέχει πολλαπλές TextSegment Το κείμενο όταν το αντικείμενο Διάφορα κινήματα γραμματοσειράς.

foreach (var fragment in absorber.TextFragments)
{
    foreach (var segment in fragment.Segments)
    {
        Console.WriteLine($"Segment: {segment.Text}, Font: {segment.TextState.Font.FontName}");
    }
}

Διαχείριση Font

FontRepository παρέχει μεθόδους για να βρείτε και να φορτίσετε γραμματοσειρά.

var font = FontRepository.FindFont("Helvetica");

Βάσει των κειμένων παραγράφων

TextParagraph επιτρέπει την κατασκευή πολυγραμμικών κειμένων για ενσωμάτωση σε Μια σελίδα .

var paragraph = new TextParagraph();
paragraph.AppendLine(new TextFragment("First line"));
paragraph.AppendLine(new TextFragment("Second line"));

Συμβουλές και βέλτιστες πρακτικές

  • Χρησιμοποιήστε TextFragmentAbsorber όταν χρειάζεστε στοιχεία θέσης και γραμματοσειράς, χρησιμοποιήστε TextAbsorber για την εκχύλιση κειμένου.
  • Αποδεχτείτε το απορρόφημα σε μια σελίδα για ταχύτερα αποτελέσματα, ή doc.Pages Αναζητήστε ολόκληρο το έγγραφο.
  • Η τακτική αναζήτηση έκφρασης είναι περιπτώσεων ευαίσθητη κατά προεπιλογή - χρήση (?i) Προκαταβολή για περιπτώσεων-αίσθητων συναντήσεων.
  • Ελέγξτε TextState.Font.IsEmbedded Για να προσδιορίσετε αν ένα γράμμα είναι ενσωματωμένο στο PDF.
  • Για μεγάλα έγγραφα, επεξεργαστείτε τις σελίδες μία φορά για να διαχειριστεί τη χρήση μνήμης.

κοινά ζητήματα

ΘέμαΑιτίαΦΙΛΕΞΗ
Το κείμενο που εκτυλίσσεται είναι σπασμένοΤο PDF χρησιμοποιεί μη τυποποιημένη κωδικοποίηση ή CID κειμένου χαρτογράφησηΕλέγξτε την ενσωμάτωση γραμματοσειράς. μερικά σάρωση PDF απαιτούν OCR
Δεν βρέθηκαν κείμενα από το κείμενοΤο περιεχόμενο της σελίδας είναι μια εικόνα, όχι κείμενο.Χρησιμοποιήστε ένα εργαλείο OCR για να μετατρέψετε τις σελίδες εικόνας σε κείμενο πρώτα
Ο Ρέγκες δεν επιστρέφει σε αγώνεςΤο πρότυπο δεν λογίζεται για το λευκό χώρο που εισάγεται από τη διάταξη κειμένου PDFΚανονικοποίηση του λευκού χώρου ή χρήση ενός μοντέλου χαλαρωτή
TextState.Font Είναι μηδένΗ πηγή γράμματος λείπει από το PDFΔιαχειριστείτε μηδενικές επαληθεύσεις κατά την επιθεώρηση των ιδιοτήτων γραμματοσειράς

FAQ

Μπορώ να εκχύλιζα κείμενο από μια συγκεκριμένη περιοχή μιας σελίδας;?

Ναι, ΣΕΤΙΔΑ TextFragmentAbsorber.TextSearchOptions.Rectangle Περιορισμός της αναζήτησης σε μια συγκεκριμένη περιοχή της σελίδας.

Η εκχύλισμα κειμένου διατηρεί την τάξη ανάγνωσης;?

Η βιβλιοθήκη επιστρέφει κείμενο με σειρά περιεχομένου-στρέμματος. Για διατάξεις πολυθώνων, μπορεί να χρειαστεί να ταξινομήσετε κομμάτια ανά θέση.

Μπορώ να βγάλω κείμενο από όλες τις σελίδες ταυτόχρονα;?

Ναι, καλέστε doc.Pages.Accept(absorber) Αναζητήστε κάθε σελίδα στο έγγραφο.


Συνοπτική αναφορά API

Κλάση / ΜέθοδοςΠεριγραφή
TextAbsorberΕξέτασε ολόκληρο το κείμενο ως μία σφραγίδα
TextFragmentAbsorberΕξέτασε δομημένα κείμενα με στοιχεία θέσης και γραμματοσειράς
TextFragmentΈνα κείμενο που τρέχει με θέση, κατάσταση κειμένου και τμήματα
TextFragment.TextΗ εκχύλισμα του κειμένου string
TextFragment.PositionΣυντονισμοί στην σελίδα
TextFragment.TextStateΠληροφορίες γραμματοσειράς, μεγέθους και χρώματος
TextFragment.SegmentsΣημειώσεις μέσα στο κομμάτι
TextParagraphΚατασκευαστής για πολυγραμμικά κείμενα μπλοκ
TextStateΌνομα γραμματοσειράς, μέγεθος, χρώμα και ιδιότητες στυλ
FontRepositoryΣτατική γραμματοσειρά αναζήτησης και φόρτισης
FontRepository.FindFontΒρείτε ένα γράμμα με το όνομα

Δείτε επίσης

 Ελληνικά