escarter/poppler-wrapper-php

这是一个针对Poppler工具的PHP包装器

1.0.1 2023-09-23 13:01 UTC

This package is auto-updated.

Last update: 2024-09-23 15:25:45 UTC


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

要求

在幕后,此包利用了pdftotextpdfseparate。您可以通过发出此命令来验证系统上安装的二元文件:

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)。有关更多信息,请参阅许可文件