Εξαγωγή κειμένου με χρήση συσκευής κειμένου

Εισαγωγή

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

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

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

  1. Aspose.PDF για .NET: Κάντε λήψη της πιο πρόσφατης έκδοσης από τοΣελίδα λήψης Aspose.PDF για .NET.
  2. Περιβάλλον ανάπτυξης: Visual Studio ή οποιοδήποτε άλλο περιβάλλον ανάπτυξης C#.
  3. .NET Framework: Βεβαιωθείτε ότι το έργο σας στοχεύει .NET Framework 4.x ή μεταγενέστερο.
  4. Εισαγωγή αρχείου PDF: Ένα αρχείο PDF που θα χρησιμοποιήσετε για εξαγωγή κειμένου. Τοποθετήστε το σε έναν κατάλογο στον υπολογιστή σας (θα το αναφέρουμε ωςYOUR DOCUMENT DIRECTORY).

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

Στην κορυφή του κώδικά σας, θα χρειαστεί να εισαγάγετε τους απαραίτητους χώρους ονομάτων για να εργαστείτε με το Aspose.PDF:

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

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

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

// Καθορίστε τη διαδρομή προς το έγγραφο PDF σας
string dataDir = "YOUR DOCUMENT DIRECTORY";

// Φορτώστε το έγγραφο PDF
Document pdfDocument = new Document(dataDir + "input.pdf");

Εδώ, χρησιμοποιούμεDocument pdfDocument = new Document(dataDir + "input.pdf"); για να φορτώσετε το PDF. ΟdataDir μεταβλητή κρατά τη διαδρομή καταλόγου του αρχείου PDF σας. Αυτό θα μας δώσει πρόσβαση σε ολόκληρο το έγγραφο, επιτρέποντάς μας να κάνουμε βρόχο μέσω σελίδων και να εξάγουμε περιεχόμενο.

Βήμα 2: Ρυθμίστε ένα πρόγραμμα δημιουργίας συμβολοσειρών για αποθήκευση κειμένου

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

// StringBuilder για να κρατήσει το εξαγόμενο κείμενο
StringBuilder builder = new StringBuilder();

Αρχικοποιούμε αStringBuilderπαράδειγμα, το οποίο θα συλλέγει κείμενο που εξάγεται από κάθε σελίδα. Είναι ένας πιο αποτελεσματικός τρόπος χειρισμού μεγάλων χορδών σε σύγκριση με την κανονική συνένωση χορδών σε βρόχο.

Βήμα 3: Επανάληψη μέσω σελίδων PDF

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

// Περιηγηθείτε σε όλες τις σελίδες του PDF
foreach (Page pdfPage in pdfDocument.Pages)
{
    // Επεξεργαστείτε κάθε σελίδα για εξαγωγή κειμένου
}

Αυτός ο βρόχος περνά από κάθε σελίδα του PDF (pdfDocument.Pages ). Για κάθε σελίδα, θα εξαγάγουμε το κείμενο και θα το προσθέτουμε στη σελίδα μαςStringBuilder.

Βήμα 4: Εξαγωγή κειμένου από κάθε σελίδα

Τώρα, ρυθμίζουμε τη διαδικασία εξαγωγής κειμένου για κάθε σελίδα. Εδώ, θα δημιουργήσουμε έναTextDevice αντικείμενο και χρησιμοποιήστε το για να επεξεργαστείτε τις σελίδες PDF. ΟTextDevice εξάγει ακατέργαστο ή μορφοποιημένο κείμενο με βάση τις επιλογές εξαγωγής που ορίσαμε.

using (MemoryStream textStream = new MemoryStream())
{
    // Δημιουργήστε μια συσκευή κειμένου για εξαγωγή κειμένου
    TextDevice textDevice = new TextDevice();
    
    // Ρυθμίστε τις επιλογές εξαγωγής κειμένου στη λειτουργία "Pure".
    TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Pure);
    textDevice.ExtractionOptions = textExtOptions;

    //Εξαγάγετε κείμενο από την τρέχουσα σελίδα και αποθηκεύστε το στη ροή μνήμης
    textDevice.Process(pdfPage, textStream);

    // Μετατροπή ροής μνήμης σε κείμενο
    string extractedText = Encoding.Unicode.GetString(textStream.ToArray());

    // Προσθέστε το εξαγόμενο κείμενο στο StringBuilder
    builder.Append(extractedText);
}
  • TextDevice textDevice = new TextDevice(); : ΤοTextDevice Η κλάση χρησιμοποιείται για την εξαγωγή κειμένου από το PDF.
  • TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Pure); : Αυτή η επιλογή εξάγει το ακατέργαστο κείμενο χωρίς να διατηρεί καμία μορφοποίηση όπως γραμματοσειρές ή θέσεις. Μπορείτε επίσης να χρησιμοποιήσετεTextFormattingMode.Raw εάν χρειάζεστε περισσότερο έλεγχο στη μορφοποίηση.
  • textDevice.Process(pdfPage, textStream); : Αυτό επεξεργάζεται κάθε σελίδα του PDF και αποθηκεύει το εξαγόμενο κείμενο σε αMemoryStream.
  • Τέλος, μετατρέπουμε το κείμενο από τοMemoryStream σε μια συμβολοσειρά και προσαρτήστε την στοStringBuilder.

Βήμα 5: Αποθηκεύστε το εξαγόμενο κείμενο σε ένα αρχείο

Μετά την επεξεργασία όλων των σελίδων, το κείμενο αποθηκεύεται στοStringBuilder. Το τελευταίο βήμα είναι να αποθηκεύσετε αυτό το εξαγόμενο κείμενο σε ένα αρχείο.

// Καθορίστε τη διαδρομή εξόδου για το αρχείο κειμένου
dataDir = dataDir + "input_Text_Extracted_out.txt";

// Αποθηκεύστε το εξαγόμενο κείμενο σε ένα αρχείο
File.WriteAllText(dataDir, builder.ToString());

Console.WriteLine("\nText extracted successfully from PDF document.\nFile saved at " + dataDir);
  • File.WriteAllText(dataDir, builder.ToString()); : Αυτό γράφει ολόκληρο το περιεχόμενο τουStringBuilder σε αρχείο κειμένου.
  • Η διαδρομή για το αρχείο εξόδου ορίζεται προσθέτοντας ένα όνομα αρχείου ("input_Text_Extracted_out.txt" ) στοdataDir μονοπάτι.

Σύναψη

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

Με το Aspose.PDF, δεν περιορίζεστε στην εξαγωγή κειμένου — μπορείτε να χειρίζεστε σχολιασμούς, να χειρίζεστε εικόνες ή ακόμα και να μετατρέπετε αρχεία PDF σε άλλες μορφές όπως HTML ή Word. Η ευελιξία και η δύναμη αυτής της βιβλιοθήκης την καθιστούν ένα ανεκτίμητο εργαλείο για τη διαχείριση PDF σε εφαρμογές .NET.

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

Μπορεί το Aspose.PDF να εξάγει κείμενο από αρχεία PDF που βασίζονται σε εικόνες;

Όχι, το Aspose.PDF έχει σχεδιαστεί για εξαγωγή κειμένου από αρχεία PDF που βασίζονται σε περιεχόμενο. Για αρχεία PDF που βασίζονται σε εικόνα, απαιτείται τεχνολογία OCR.

Το Aspose.PDF διατηρεί τη μορφοποίηση κατά την εξαγωγή κειμένου;

Από προεπιλογή, το κείμενο εξάγεται χωρίς μορφοποίηση, αλλά μπορείτε να προσαρμόσετε τις επιλογές εξαγωγής εάν θέλετε να διατηρήσετε κάποια μορφοποίηση.

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

Ναι, μπορείτε να τροποποιήσετε τον κώδικα ώστε να επαναλαμβάνεται ένα συγκεκριμένο εύρος σελίδων αντί για όλες τις σελίδες.

Ποιες είναι οι λειτουργίες εξαγωγής κειμένου στο Aspose.PDF;

Το Aspose.PDF παρέχει δύο λειτουργίες: Raw και Pure. Η λειτουργία Raw προσπαθεί να διατηρήσει την αρχική διάταξη, ενώ η λειτουργία Pure εξάγει μόνο το κείμενο χωρίς μορφοποίηση.

Είναι το Aspose.PDF για .NET συμβατό με .NET Core;

Ναι, το Aspose.PDF για .NET είναι πλήρως συμβατό με .NET Core και .NET Framework.