Class 'Spatie\PdfToText\Pdf' 未找到

Class 'Spatie\PdfToText\Pdf' not found

我试着保持 运行 Spatie\PdfToText。 我有以下错误:

Class 'Spatie\PdfToText\Pdf' not found

我读了 this 但没有帮助。

use Spatie\PdfToText\Pdf;

public function importInRequestStore($projectId, Request $request)
{
    require  base_path().'/vendor/autoload.php';
    $text = (new Pdf())
        ->setPdf('book.pdf')
        ->text();
}

这段代码有什么问题?我没有提前找到google.Thanks的解决方案。

它将不会加载 class,因为这些 spatie classes 没有服务提供商。

您应该修改 Laravel/Lumen 项目根目录下的 composer.json。

您可以在自动加载节点中添加如下所示的 classmap 路径:

"autoload": {
    "classmap": [
        "vendor/spatie"
    ]
},

或者您可以在自动加载节点中添加如下所示的 psr-4 键值(这是推荐的方式):

"autoload": {
    "psr-4": [
        "Spatie\": "vendor/spatie"
    ]
},

最后 重要 是你应该 composer dump-autoload 然后。否则 spatie class 永远不会加载。

您必须按照此处的说明包含“autoload.php”: https://github.com/spatie/pdf-to-text/issues/3

所以在大多数情况下正确的工作示例是这样的:

require 'vendor/autoload.php';
use Spatie\PdfToText\Pdf;
echo Pdf::getText('book.pdf');

所以问题是文档页面上缺少信息:https://github.com/spatie/pdf-to-text