这个PHP代码中的错误在哪里?

时间:2017-12-04 20:33:10

标签: php pdf composer-php fatal-error

我有PHP代码将PDF文件转换为文本文件。为此,我使用编辑器安装了一个外部库,以便能够使用PDF库。

问题是即使我需要安装的库,系统仍然无法识别 PDF类

图书馆的路径:

C:\ XAMPP \ htdocs中\厂商\ spatie \ PDF到文本\ SRC \ pdf.php

错误:

  

致命错误:未捕获错误:在C:\ xampp \ htdocs \ testwebsite \ OSWebProject \ test2.php中找不到类'Pdf':5堆栈跟踪:#0 {main}在C:\ xampp \ htdocs \ testwebsite中抛出第5行的OSWebProject \ test2.php

代码:pdf class

<?php

namespace Spatie\PdfToText;

use Spatie\PdfToText\Exceptions\CouldNotExtractText;
use Spatie\PdfToText\Exceptions\PdfNotFound;
use Symfony\Component\Process\Process;

class Pdf
{
    protected $pdf;

    protected $binPath;

    public function __construct(string $binPath = null)
    {
        $this->binPath = $binPath ?? '/usr/bin/pdftotext';
    }

    public function setPdf(string $pdf) : Pdf
    {
        if (!file_exists($pdf)) {
            throw new PdfNotFound("could not find pdf {$pdf}");
        }

        $this->pdf = $pdf;

        return $this;
    }

    public function text() : string
    {
        $process = new Process("{$this->binPath} " . escapeshellarg($this->pdf) . " -");
        $process->run();

        if (!$process->isSuccessful()) {
            throw new CouldNotExtractText($process);
        }

        return trim($process->getOutput(), " \t\n\r\0\x0B\x0C");
    }

    public static function getText(string $pdf, string $binPath = null) : string
    {
        return (new static($binPath))
            ->setPdf($pdf)
            ->text();
    }
}

的代码:

<?php

require_once('C:\xampp\htdocs\vendor\spatie\pdf-to-text\src\pdf.php');

$text = (new Pdf())
    ->setPdf('اجواء.pdf')
    ->text();
?>

1 个答案:

答案 0 :(得分:1)

the docs and sourcePdf类位于Spatie\PdfToText命名空间内。

您需要在PHP文件的顶部use Spatie\PdfToText\Pdf;,或者在调用它时可以将其引用为new Spatie\PdfToText\Pdf()