Stars: 713
Forks: 114
Pull Requests: 22
Issues: 35
Watchers: 20
Last Updated: 2023-01-18 13:13:00
Extract text from a pdf
License: MIT License
Languages: PHP
This package provides a class to extract text from a pdf.
use Spatie\PdfToText\Pdf;
echo Pdf::getText('book.pdf'); //returns the text from the pdfSpatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.
We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.
We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.
Behind the scenes this package leverages pdftotext. You can verify if the binary installed on your system by issueing this command:
which pdftotextIf it is installed it will return the path to the binary.
To install the binary you can use this command on Ubuntu or Debian:
apt-get install poppler-utilsOn a mac you can install the binary using brew
brew install popplerIf you're on RedHat, CentOS, Rocky Linux or Fedora use this:
yum install poppler-utilsYou can install the package via composer:
composer require spatie/pdf-to-textExtracting text from a pdf is easy.
$text = (new Pdf())
->setPdf('book.pdf')
->text();Or easier:
echo Pdf::getText('book.pdf');By default the package will assume that the pdftotext command is located at /usr/bin/pdftotext.
If it is located elsewhere pass its binary path to constructor
$text = (new Pdf('/custom/path/to/pdftotext'))
->setPdf('book.pdf')
->text();or as the second parameter to the getText static method:
echo Pdf::getText('book.pdf', '/custom/path/to/pdftotext');Sometimes you may want to use pdftotext options. To do so you can set them up using the setOptions method.
$text = (new Pdf())
->setPdf('table.pdf')
->setOptions(['layout', 'r 96'])
->text()
;or as the third parameter to the getText static method:
echo Pdf::getText('book.pdf', null, ['layout', 'opw myP1$$Word']);Please note that successive calls to setOptions() will overwrite options passed in during previous calls.
If you need to make multiple calls to add options (for example if you need to pass in default options when creating
the Pdf object from a container, and then add context-specific options elsewhere), you can use the addOptions() method:
$text = (new Pdf())
->setPdf('table.pdf')
->setOptions(['layout', 'r 96'])
->addOptions(['f 1'])
->text()
;Please see CHANGELOG for more information about what has changed recently.
composer testPlease see CONTRIBUTING for details.
If you've found a bug regarding security please mail [email protected] instead of using the issue tracker.
Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.
The MIT License (MIT). Please see License File for more information.