spatie / pdf-to-text
从 PDF 中提取文本
Requires
- php: ^7.4|^8.0
- symfony/process: ^4.0|^5.0|^6.0|^7.0
Requires (Dev)
- pestphp/pest-plugin-laravel: ^1.3
- phpunit/phpunit: ^9.5
README
此包提供了一个用于从 PDF 中提取文本的类。
use Spatie\PdfToText\Pdf; echo Pdf::getText('book.pdf'); //returns the text from the pdf
Spatie 是一家位于比利时安特卫普的网页设计公司。您可以在我们的网站上找到所有开源项目的概述 这里。
支持我们
我们投入了大量资源来创建 一流的开放源代码包。您可以通过 购买我们的付费产品之一 来支持我们。
我们非常感激您从家乡寄来明信片,注明您正在使用我们哪些包。您可以在 我们的联系页面 上找到我们的地址。我们将所有收到的明信片发布在我们的 虚拟明信片墙上。
需求
幕后,此包利用 pdftotext。您可以通过运行此命令来验证您的系统上是否已安装二进制文件
which pdftotext
如果已安装,它将返回二进制文件的路径。
您可以使用以下命令在 Ubuntu 或 Debian 上安装二进制文件
apt-get install poppler-utils
在 macOS 上,您可以使用 brew 安装二进制文件
brew install poppler
如果您使用的是 RedHat、CentOS、Rocky Linux 或 Fedora,请使用此命令
yum install poppler-utils
安装
您可以通过 composer 安装此包
composer require spatie/pdf-to-text
用法
从 PDF 中提取文本非常简单。
$text = (new Pdf()) ->setPdf('book.pdf') ->text();
或者更简单
echo Pdf::getText('book.pdf');
默认情况下,此包假定 pdftotext
命令位于 /usr/bin/pdftotext
。如果它位于其他位置,请将其二进制路径传递给构造函数
$text = (new Pdf('/custom/path/to/pdftotext')) ->setPdf('book.pdf') ->text();
或作为 getText
静态方法的第二个参数
echo Pdf::getText('book.pdf', '/custom/path/to/pdftotext');
有时您可能想使用 pdftotext 选项。为此,您可以使用 setOptions
方法设置它们。
$text = (new Pdf()) ->setPdf('table.pdf') ->setOptions(['layout', 'r 96']) ->text() ;
或作为 getText
静态方法的第三个参数
echo Pdf::getText('book.pdf', null, ['layout', 'opw myP1$$Word']);
请注意,连续调用 setOptions()
将会覆盖之前调用中传入的选项。
如果您需要多次调用以添加选项(例如,如果需要在从容器创建 Pdf
对象时传入默认选项,然后再在其他地方添加特定于上下文的选项),则可以使用 addOptions()
方法
$text = (new Pdf()) ->setPdf('table.pdf') ->setOptions(['layout', 'r 96']) ->addOptions(['f 1']) ->text() ;
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
测试
composer test
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全
如果您发现了关于安全性的错误,请发送电子邮件到 [email protected] 而不是使用问题跟踪器。
鸣谢
关于 Spatie
Spatie 是一家位于比利时安特卫普的网页设计公司。您可以在我们的网站上找到所有开源项目的概述 这里。
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。