Δωρεάν PHP API για τη μετατροπή PDF ή συγκεκριμένου τμήματος σε κείμενο
Βιβλιοθήκη PHP ανοιχτού κώδικα που επιτρέπει στους προγραμματιστές λογισμικού να εξάγουν κείμενο από PDF ή συγκεκριμένη σελίδα ενός αρχείου PDF μέσα σε εφαρμογές PHP.
Τι είναι το PDF-to-Text;
Τα PDF είναι ένα πρότυπο μορφότυπο για ψηφιακά έγγραφα σε κάθε βιομηχανία—από τα χρηματοοικονομικά και την υγειονομική περίθαλψη μέχρι την εκπαίδευση και το νομικό. Ωστόσο, η εξαγωγή ουσιαστικού κειμένου από τα PDF μπορεί να αποτελεί πρόκληση για τους προγραμματιστές λογισμικού. Ευτυχώς, η βιβλιοθήκη PDF-to-Text της Spatie καθιστά αυτήν την εργασία απλή και αποδοτική για προγραμματιστές PHP. Αυτό το ανοιχτού κώδικα εργαλείο παρέχει ένα καθαρό και ελαφρύ wrapper γύρω από το ισχυρό δυαδικό pdftotext από το πακέτο poppler-utils. Η βιβλιοθήκη διαθέτει μια διαισθητική διεπαφή που επιτρέπει στους προγραμματιστές να εξάγουν κείμενο με λίγες μόνο γραμμές κώδικα. Υποστηρίζει έγγραφα πολλαπλών σελίδων, PDF με στήλες, ενσωματωμένες γραμματοσειρές και εικόνες, προεπεξεργασμένα PDF (εάν έχει εφαρμοστεί OCR) και πολλά άλλα.
Το Spatie PDF-to-Text είναι μια ανοιχτού κώδικα βιβλιοθήκη PHP που επιτρέπει στους προγραμματιστές λογισμικού να εξάγουν απλό κείμενο από αρχεία PDF. Λειτουργεί ως περιτύλιγμα PHP γύρω από το εργαλείο γραμμής εντολών pdftotext, μέρος της σουίτας Poppler. Αυτό σημαίνει ότι δεν βασίζεται σε βιβλιοθήκες PHP για την ανάλυση του PDF, αλλά αξιοποιεί ένα ώριμο, δοκιμασμένο δυαδικό εργαλείο που λειτουργεί γρήγορα και με υψηλή ακρίβεια. Παρόλο που η βιβλιοθήκη είναι γραμμένη σε PHP, λειτουργεί αβίαστα σε διαφορετικά λειτουργικά συστήματα (Linux, macOS και Windows) εφόσον το δυαδικό pdftotext είναι διαθέσιμο. Είναι ελαφριά και δεν φορτώνει περιττές βιβλιοθήκες τρίτων. Αυτό την καθιστά πιο γρήγορη, πιο εύκολη στη συντήρηση και λιγότερο επιρρεπή σε σπάσιμο λόγω ενημερώσεων σε άσχετες εξαρτήσεις.
Ξεκινώντας με το PDF-to-Text
Για να εκτελέσετε το PDF-to-Text, πρώτα πρέπει να εγκαταστήσετε την PHP έκδοση 5.3 ή νεότερη. Ο πιο εύκολος τρόπος εγκατάστασης του PDF-to-Text είναι μέσω του Composer. Παρακαλούμε χρησιμοποιήστε την παρακάτω εντολή για μια ομαλή εγκατάσταση.
Εγκατάσταση PDF-to-Text μέσω composer
composer require spatie/pdf-to-textΕγκατάσταση PDF-to-Text μέσω εντολής Git
git clone https://github.com/spatie/pdf-to-text.git
cd dompdf/libΕξαγωγή κειμένου από αρχείο PDF χρησιμοποιώντας το API PHP
Η ανοιχτού κώδικα βιβλιοθήκη Spatie PDF-to-Text είναι ελάχιστη από σχεδίαση, εστιάζοντας σε μία εργασία — την εξαγωγή κειμένου από PDF — και το κάνει καλά. Η απλότητά της την καθιστά εξαιρετική επιλογή για προσαρμοσμένες λύσεις λογισμικού όπως σαρωτές τιμολογίων, εργαλεία ακαδημαϊκής έρευνας, επεξεργαστές νομικών εγγράφων ή συστήματα μετανάστευσης περιεχομένου. Το παρακάτω παράδειγμα δείχνει πώς οι προγραμματιστές λογισμικού μπορούν απλώς να ορίσουν τη διαδρομή του αρχείου PDF και είναι έτοιμοι να εξάγουν όλο το κειμενικό του περιεχόμενο. Μπορούν επίσης να προσαρμόσουν τη διαδρομή προς το εκτελέσιμο αν χρειάζεται.
Πώς να εξάγετε κείμενο από αρχείο PDF χρησιμοποιώντας το API PHP;
use Spatie\PdfToText\Pdf;
$text = (new Pdf())
->setPdf('example.pdf')
->text();
echo $text;
$text = (new Pdf('/custom/path/to/pdftotext'))
->setPdf('report.pdf')
->text();
Εξαγωγή συγκεκριμένου τμήματος του PDF μέσω PHP
Η βιβλιοθήκη σας επιτρέπει να αξιοποιήσετε τη δύναμη του εργαλείου γραμμής εντολών pdftotext παρέχοντας υποστήριξη για τις διάφορες επιλογές του. Αυτό σημαίνει ότι μπορείτε να προσαρμόσετε τη διαδικασία εξαγωγής κειμένου ώστε να ταιριάζει στις συγκεκριμένες ανάγκες σας. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε επιλογές για να διατηρήσετε τη διάταξη του αρχικού PDF, να καθορίσετε ένα συγκεκριμένο εύρος σελίδων ή να ορίσετε την ανάλυση του αποτελέσματος. Το παρακάτω απλό παράδειγμα δείχνει πώς οι προγραμματιστές λογισμικού πρώτα ορίζουν τις επιλογές layout και r και στη συνέχεια προσθέτουν την επιλογή f για να καθορίσουν την πρώτη σελίδα του PDF.
Πώς να ορίσετε διάφορες επιλογές για την εξαγωγή κειμένου PDF μέσω API PHP;
use Spatie\PdfToText\Pdf;
$text = (new Pdf())
->setPdf('table.pdf')
->setOptions(['layout', 'r 96'])
->addOptions(['f 1'])
->text();
echo $text;