escarter / poppler-wrapper-php
这是一个针对Poppler工具的PHP包装器
Requires
- php: ^7.3|^8.0
- symfony/process: ^5.4|^6.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.17
- phpunit/phpunit: ^9.5
- spatie/ray: ^1.10
- vimeo/psalm: ^4.3
README
此包提供了一个从PDF中提取文本的类。
use Escarter\PopplerPhp\PdfToText; use Escarter\PopplerPhp\getOutput; echo PdfToText::getText('document.pdf','/opt/homebrew/bin/pdftotext'); //returns the text from the pdf echo PdfSeparate::getOutput('document.pdf','/opt/homebrew/bin/pdfseparate','destination_path/page_%d.pdf'); //returns null
要求
在幕后,此包利用了pdftotext和pdfseparate。您可以通过发出此命令来验证系统上安装的二元文件:
which pdftotext
which which pdfseparate
如果它们已安装,上述命令将返回二进制的路径。
要安装二进制文件,您可以在Ubuntu或Debian上使用此命令:
apt-get install poppler-utils
在mac上,您可以使用brew安装二进制文件:
brew install poppler
如果您使用的是RedHat或CentOS,请使用此命令:
yum install poppler-utils
安装
您可以通过composer安装此包
composer require escarter/poppler-wrapper-php
使用说明:提取文本
从PDF中提取文本非常简单。
$text = (new PdfToText()) ->setPdf('document.pdf') ->text();
或者更简单
echo PdfToText::getText('document.pdf');
默认情况下,包将假设pdftotext命令位于/usr/bin/pdftotext
。如果它位于其他位置,请将二进制文件路径传递给构造函数
$text = (new PdfToText('/custom/path/to/pdftotext')) ->setPdf('document.pdf') ->text();
或者作为getText静态方法的第二个参数
echo PdfToText::getText('document.pdf', '/custom/path/to/pdftotext');
有时您可能想要使用pdftotext选项。为此,您可以使用setOptions方法进行设置。
$text = (new PdfToText()) ->setPdf('table.pdf') ->setOptions(['layout', 'r 96']) ->text() ;
或者作为getText静态方法的第三个参数
echo PdfToText::getText('document.pdf', null, ['layout', 'opw myP1$$Word']);
请注意,对setOptions()的连续调用将覆盖之前调用中传递的选项。
如果您需要多次调用以添加选项(例如,如果需要在从容器创建Pdf对象时传递默认选项,然后在其他地方添加上下文特定选项),您可以使用addOptions()方法
$text = (new PdfToText()) ->setPdf('table.pdf') ->setOptions(['layout', 'r 96']) ->addOptions(['f 1']) ->text() ;
使用说明:将PDF拆分为每页单独的文件
将单个PDF文件拆分为每页单独的多个文件。
(new PdfSeparate()) ->setPdf('document.pdf') ->setDestination('destination_path/page_%d.pdf') ->split();
或者更简单
PdfSeparate::getOutput('document.pdf','destination_path/page_%d.pdf');
执行此操作后,您可以在destination_path中检查所有拆分的文件(page_1.pdf, page_2.pdf....)
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
测试
composer test
贡献
有关详细信息,请参阅CONTRIBUTING。
安全
如果您发现任何与安全相关的问题,请通过电子邮件mbutuhescarter@gmail.com联系,而不是使用问题跟踪器。
鸣谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。