Text

Text

Αυτή η σελίδα καλύπτει την ανάγνωση κειμένου από μια σελίδα, σε τρία επίπεδα λεπτομέρειας: απλό κείμενο, δομημένα μπλοκ διάταξης και μεμονωμένα τοποθετημένα glyphs. Για την εγγραφή κειμένου σε μια σελίδα, δείτε Core API and Core API.


Εξαγωγή Απλού Κειμένου

Page.GetText() επιστρέφει το συναρμολογημένο απλό κείμενο της σελίδας, με τη σειρά ανάγνωσης. Είναι ο πιο απλός τρόπος να επιβεβαιώσετε ποιο κείμενο περιέχει πραγματικά μια σελίδα — για παράδειγμα, μετά την εξομάλυνση ενός πεδίου ή την εφαρμογή μιας διαγραφής.

const page = doc.Pages[0];
console.log(page.GetText().includes('Internal memo'));

Δομημένο Κείμενο

Page.GetStructuredText() εξάγει τοποθετημένο κείμενο ομαδοποιημένο σε γραμμές (βάσει της βάσης) και μπλοκ παρόμοια με παραγράφους (βάσει του κάθετου κενών και της αριστερής στοίχισης), επιστρέφοντας TextBlock[] — χρήσιμο όταν χρειάζεστε διάταξη, όχι μόνο μια απλή συμβολοσειρά.


Ενδοσκόπηση σε Επίπεδο Γλύφου

visitContent(doc, page, visitor) διασχίζει τις ροές περιεχομένου μιας σελίδας — συμπεριλαμβανομένου του Form XObjects — και καλεί τον αντίστοιχο χειριστή στο visitor για κάθε γλυφ, εικόνα ή διαδρομή που συναντά. Ο χειριστής glyph λαμβάνει ένα GlyphEvent: το text του γλυφ, το quad του σε χώρο συσκευής, fontSize, color, και πεδία προέλευσης όπως το mcid (το περιβάλλον στοιχείο σημειωμένου περιεχομένου, αν υπάρχει) και το artifact (αληθές όταν σχεδιάζεται μέσα σε εύρος /Artifact).

import { visitContent } from '@asposefoss/pdf';

let glyphCount = 0;
visitContent(doc, page, {
  glyph: (e) => {
    glyphCount++;
    if (e.artifact) return;       // skip decorative content
    console.log(e.text, e.quad, e.color);
  },
});
console.log('glyphs drawn:', glyphCount);

Συμβουλές και Καλές Πρακτικές

  • Χρησιμοποιήστε το Page.GetText() για γρήγορο έλεγχο παρουσίας/απουσίας· χρησιμοποιήστε το visitContent() με έναν glyph χειριστή όταν χρειάζεστε τη ακριβή θέση, το μέγεθος γραμματοσειράς ή το χρώμα κάθε γλυφ.
  • Ελέγξτε το GlyphEvent.artifact για να παραλείψετε διακοσμητικό περιεχόμενο (επιπλέον στοιχεία σελίδας, φόντα) που ένα ετικετοποιημένο έγγραφο χαρακτηρίζει ως /Artifact αντί για πραγματικό περιεχόμενο.
  • GlyphEvent.mcid συνδέει ένα glyph πίσω στο περιβάλλον στοιχείο δομής όταν το έγγραφο είναι επισημασμένο — συνδυάστε με Structure για να μεταβείτε από ένα glyph στο λογικό του στοιχείο.
  • Page.GetStructuredText() ομαδοποιεί γλυφ σε μπλοκ για εσάς· απευθυνθείτε στο visitContent() άμεσα μόνο όταν χρειάζεστε λεπτομέρειες ανά γλυφ που το GetStructuredText() δεν εκθέτει.

Συνηθισμένα Προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
Page.GetText() λείπει κείμενο που είναι ορατό στη σελίδαΤο κείμενο σχεδιάστηκε ως διανυσματικά μονοπάτια ή εικόνα αντί για πραγματικούς τελεστές εμφάνισης γλυφώνΧρησιμοποιήστε το visitContent() με έναν χειριστή path / image για να επιβεβαιώσετε ποιος τύπος περιεχομένου το σχεδίασε πραγματικά
Ο χειριστής glyph του visitContent() ενεργοποιείται για διακοσμητικό κείμενο φόντουΤο GlyphEvent.artifact δεν ελέγχθηκεΠαραλείψτε τα γεγονότα όπου το e.artifact είναι true
Το εξαγόμενο κείμενο είναι εκτός της οπτικής σειράς ανάγνωσηςΗ απλή συναρμολόγηση GetText() δεν επαναδημιουργεί τη διάταξη πολλών στηλώνΧρησιμοποιήστε το Page.GetStructuredText(), το οποίο ομαδοποιεί το κείμενο σε μπλοκ με επίγνωση διάταξης

FAQ

Ποια είναι η διαφορά μεταξύ GetText και GetStructuredText;

GetText() επιστρέφει μια επίπεδη συμβολοσειρά του συναρμολογημένου κειμένου της σελίδας. GetStructuredText() επιστρέφει TextBlock[] — κείμενο ομαδοποιημένο σε γραμμές και μπλοκ παρόμοια με παραγράφους με βάση τη γραμμή βάσης και τη διάταξη, χρήσιμο όταν η θέση είναι σημαντική.

Πώς μπορώ να λάβω τη ακριβή θέση και το μέγεθος γραμματοσειράς κάθε χαρακτήρα;

Καλέστε το visitContent(doc, page, { glyph: (e) => ... }). Κάθε GlyphEvent περιέχει το text του γλύφου, το quad σε χώρο συσκευής, το fontSize, το color, και τη γραμμή βάσης angle.

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

Ναι — το GlyphEvent.artifact είναι true όταν το γλύφο σχεδιάστηκε μέσα σε ένα /Artifact marked-content scope, η ίδια διάκριση που χρησιμοποιεί το Document.AutoTag() κατά την απόφαση τι θα επισημανθεί.

Η εξαγωγή κειμένου βλέπει το περιεχόμενο μέσα σε Form XObjects;

Ναι — το visitContent() προχωρά μέσα σε Form XObjects ως μέρος της περιήγησής του, ώστε τα γλύφα που σχεδιάζονται μέσω μιας επαναχρησιμοποιούμενης φόρμας να επισκέπτονται ακόμη.


API Reference Σύνοψη

Κλάση/ΜέθοδοςΠεριγραφή
Page.GetText()Το συναρμολογημένο απλό κείμενο της σελίδας, με τη σειρά ανάγνωσης
Page.GetStructuredText()Κείμενο ομαδοποιημένο σε γραμμές και μπλοκ παρόμοια με παραγράφους (TextBlock[])
visitContent()Περιηγηθείτε στο περιεχόμενο μιας σελίδας, εκδίδοντας συμβάντα glyph/εικόνας/διαδρομής με προέλευση
GlyphEventΈνα τοποθετημένο γλύφο: text, quad, fontSize, color, mcid, artifact

Δείτε επίσης

 Ελληνικά