Αναζήτηση και λήψη σελίδας κειμένου σε αρχείο PDF

Εισαγωγή

Έχετε βρεθεί ποτέ να χρειάζεται να αναζητήσετε συγκεκριμένο κείμενο σε ένα έγγραφο PDF και να το εξαγάγετε για περαιτέρω χρήση; Ίσως δημιουργείτε μια εφαρμογή που επεξεργάζεται έγγραφα και απαιτεί ακριβή εξαγωγή δεδομένων ή ίσως απλά χρειάζεται να αναλύετε αποτελεσματικά τα PDF. Όποια και αν είναι η περίπτωσή σας, είστε στο σωστό μέρος! Σε αυτό το σεμινάριο, θα εξετάσουμε τον τρόπο αναζήτησης και λήψης κειμένου από μια σελίδα σε ένα αρχείο PDF χρησιμοποιώντας το Aspose.PDF για .NET. Είτε είστε αρχάριος είτε έμπειρος προγραμματιστής, αυτός ο οδηγός θα σας καθοδηγήσει σε κάθε βήμα με συνομιλητικό και συναρπαστικό τρόπο. Έτοιμοι να κυλήσουν; Ας ξεκινήσουμε!

Προαπαιτούμενα

Πριν προχωρήσουμε στην κωδικοποίηση, ας βεβαιωθούμε ότι έχετε όλα όσα χρειάζεστε:

  1. Aspose.PDF για .NET Library: Μπορείτε να το κατεβάσετε απόεδώ ή αποκτήστε μια δωρεάν δοκιμαστική έκδοση από τον ίδιο σύνδεσμο. Για αγορά, κατευθυνθείτε στοΚατάστημα Aspose.
  2. .NET Framework: Θα χρειαστείτε ένα λειτουργικό περιβάλλον ανάπτυξης .NET όπως το Visual Studio.
  3. Ένα αρχείο PDF: Θα χρειαστείτε ένα δείγμα αρχείου PDF όπου μπορούμε να αναζητήσουμε και να εξαγάγουμε το κείμενο. Για αυτό το σεμινάριο, ας υποθέσουμε ότι το αρχείο έχει το όνομαSearchAndGetTextPage.pdf.

Εισαγωγή πακέτων

Πρώτα πράγματα πρώτα, πρέπει να εισαγάγουμε τους απαραίτητους χώρους ονομάτων για να δουλέψουμε με το Aspose.PDF για .NET. Βεβαιωθείτε ότι αυτά περιλαμβάνονται στην κορυφή του κώδικά σας.

using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System

Τώρα που καλύψαμε τα προαπαιτούμενα, ας αναλύσουμε τον κώδικα βήμα προς βήμα. Κάθε βήμα έχει περιγραφεί με σαφήνεια για να είναι εύκολη η παρακολούθηση.

Βήμα 1: Ορίστε τη διαδρομή στον Κατάλογο των εγγράφων σας

Πριν αλληλεπιδράσετε με το PDF σας, θα πρέπει να ορίσετε τη διαδρομή προς την τοποθεσία αποθήκευσης του εγγράφου PDF σας. Αυτό διασφαλίζει ότι το πρόγραμμα μπορεί να έχει πρόσβαση στο αρχείο.

string dataDir = "YOUR DOCUMENT DIRECTORY";
  • dataDir: Αυτή είναι η διαδρομή προς το φάκελο όπου αποθηκεύονται τα αρχεία PDF σας. Αντικαθιστώ"YOUR DOCUMENT DIRECTORY" με την πραγματική διαδρομή όπου βρίσκεται το PDF.

Βήμα 2: Φορτώστε το έγγραφο PDF

Το επόμενο βήμα είναι να φορτώσετε το έγγραφο PDF στη μνήμη, ώστε να μπορείτε να εργαστείτε μαζί του. Δείτε πώς:

Document pdfDocument = new Document(dataDir + "SearchAndGetTextPage.pdf");
  • Document: Αυτή είναι η κλάση Aspose.PDF που φορτώνει το αρχείο PDF.
  • pdfDocument: Η μεταβλητή όπου αποθηκεύεται το αρχείο PDF μετά τη φόρτωσή του.

Βήμα 3: Δημιουργήστε ένα αντικείμενο απορρόφησης κειμένου

ΟTextFragmentAbsorberclass σάς επιτρέπει να αναζητήσετε συγκεκριμένο κείμενο μέσα στο PDF. Ας δημιουργήσουμε μια παρουσία αυτής της κλάσης για να βρούμε όλες τις εμφανίσεις μιας δεδομένης φράσης αναζήτησης.

TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("Figure");
  • TextFragmentAbsorber: Αυτή η κλάση είναι υπεύθυνη για την εύρεση και εξαγωγή κειμένου από το PDF.
  • “Εικόνα”: Αντικαταστήστε το με οποιοδήποτε κείμενο θέλετε να αναζητήσετε στο PDF.

Βήμα 4: Εφαρμόστε το Text Absorber σε ολόκληρο το PDF

Μόλις ρυθμιστεί ο απορροφητής κειμένου, πρέπει να πείτε στο πρόγραμμα να πραγματοποιήσει αναζήτηση σε όλες τις σελίδες του PDF.

pdfDocument.Pages.Accept(textFragmentAbsorber);
  • Accept(): Αυτή η μέθοδος εφαρμόζει τον απορροφητή κειμένου στο PDF, σαρώνοντας κάθε σελίδα για το κείμενο που καθορίσατε.

Βήμα 5: Ανάκτηση και επανάληψη μέσω του εξαγόμενου κειμένου

Τώρα που σαρώσαμε το PDF, ήρθε η ώρα να ανακτήσουμε τα αποτελέσματα και να τα εμφανίσουμε. Θα περιηγηθούμε στα τμήματα κειμένου που έχουν εξαχθεί.

TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
  • TextFragmentCollection: Αυτή η συλλογή περιέχει όλες τις παρουσίες των τμημάτων κειμένου που βρέθηκαν από τον απορροφητή κειμένου.

Βήμα 6: Κάντε βρόχο μέσα από κάθε τμήμα και εξάγετε δεδομένα

Τώρα θα κάνουμε βρόχο μέσω τουtextFragmentCollection και εξάγετε διάφορες ιδιότητες κάθε τμήματος κειμένου, όπως η θέση του, οι λεπτομέρειες γραμματοσειράς και το χρώμα του.

foreach (TextFragment textFragment in textFragmentCollection)
{
	foreach (TextSegment textSegment in textFragment.Segments)
	{
		Console.WriteLine("Text : {0} ", textSegment.Text);
		Console.WriteLine("Position : {0} ", textSegment.Position);
		Console.WriteLine("XIndent : {0} ", textSegment.Position.XIndent);
		Console.WriteLine("YIndent : {0} ", textSegment.Position.YIndent);
		Console.WriteLine("Font - Name : {0}", textSegment.TextState.Font.FontName);
		Console.WriteLine("Font - IsAccessible : {0} ", textSegment.TextState.Font.IsAccessible);
		Console.WriteLine("Font - IsEmbedded : {0} ", textSegment.TextState.Font.IsEmbedded);
		Console.WriteLine("Font - IsSubset : {0} ", textSegment.TextState.Font.IsSubset);
		Console.WriteLine("Font Size : {0} ", textSegment.TextState.FontSize);
		Console.WriteLine("Foreground Color : {0} ", textSegment.TextState.ForegroundColor);
	}
}
  • TextFragment: Κάθε τμήμα περιέχει τμήματα του κειμένου που βρέθηκε.
  • TextSegment: Κάθε τμήμα μπορεί να έχει πολλαπλά τμήματα, που αντιπροσωπεύουν διαφορετικά μέρη του κειμένου.
  • TextState: Παρέχει λεπτομερείς πληροφορίες σχετικά με τη γραμματοσειρά, το μέγεθος και το χρώμα του κειμένου.

Σε αυτόν τον βρόχο, εκτυπώνουμε τις λεπτομέρειες όπως το πραγματικό κείμενο, τη θέση του (συντεταγμένες X και Y), τη γραμματοσειρά, εάν η γραμματοσειρά είναι ενσωματωμένη στο PDF και το χρώμα του προσκηνίου του κειμένου.

Σύναψη

Και ορίστε το! Τώρα πραγματοποιήσατε με επιτυχία αναζήτηση και εξαγωγή κειμένου από ένα αρχείο PDF χρησιμοποιώντας το Aspose.PDF για .NET. Είναι απίστευτο πόση ευελιξία έχετε με αυτήν τη βιβλιοθήκη. Είτε θέλετε να αναζητήσετε συγκεκριμένο κείμενο σε ένα μεγάλο έγγραφο, είτε να το εξαγάγετε είτε να αναλύσετε τις ιδιότητές του, το Aspose.PDF το κάνει παιχνιδάκι. Επιπλέον, με τον κώδικα που καλύψαμε, είστε καλά εξοπλισμένοι για να τον προσαρμόσετε στις ανάγκες σας.

Συχνές ερωτήσεις

Μπορώ να αναζητήσω πολλές φράσεις ταυτόχρονα;

Ναι, μπορείτε να τροποποιήσετε τον κώδικα για να αναζητήσετε πολλές φράσεις δημιουργώντας πολλέςTextFragmentAbsorber αντικείμενα.

Πώς μπορώ να εξαγάγω κείμενο από μια συγκεκριμένη σελίδα;

Μπορείτε να στοχεύσετε μια συγκεκριμένη σελίδα εφαρμόζοντας τοTextFragmentAbsorber σε μία σελίδα αντί για ολόκληρο το έγγραφο. Για παράδειγμα:pdfDocument.Pages[1].Accept(textFragmentAbsorber);.

Είναι δωρεάν το Aspose.PDF για .NET;

Το Aspose.PDF είναι ένα εμπορικό προϊόν, αλλά μπορείτε να το χρησιμοποιήσετε με αδωρεάν δοκιμή.

Μπορώ να εξαγάγω εικόνες από το PDF χρησιμοποιώντας το Aspose.PDF;

Ναι, το Aspose.PDF σάς επιτρέπει να εξάγετε εικόνες εκτός από κείμενο. Ελέγξτε τοαπόδειξη με έγγραφα για περισσότερες λεπτομέρειες.

Τι γίνεται αν χρειαστώ περισσότερη βοήθεια ή υποστήριξη;

Μπορείτε πάντα να λάβετε βοήθεια από τοAspose Support Forum.