spatie/pdf-to-text

从 PDF 中提取文本

1.53.0 2024-08-29 11:20 UTC

This package is auto-updated.

Last update: 2024-08-29 11:21:39 UTC


README

Latest Version on Packagist GitHub Workflow Status Software License Quality Score Total Downloads

此包提供了一个用于从 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)。有关更多信息,请参阅 许可证文件