You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows系统下使用Spatie Pdf-to-text包提示找不到库路径问题求助

Spatie pdf-to-text 执行失败问题解决方案

错误核心原因

  • 你对Spatie pdf-to-text包的依赖逻辑理解有误:该PHP包本身不包含pdftotext可执行程序,只是对系统级Poppler工具集中的pdftotext二进制文件的封装,你传入构造函数的C:\CV-Test\blog\vendor\spatie\pdf-to-text是PHP包的源码目录,不是可执行程序路径,因此系统无法识别为可执行命令。

修复步骤

  1. 安装Poppler工具集
    Windows环境下直接下载Poppler预编译版本,解压后找到bin目录下的pdftotext.exe文件,记录完整路径,比如你解压到C:\tools\poppler\bin\pdftotext.exe就用这个路径。
  2. 修正构造函数传参
    把Pdf类实例化时传入的路径替换为你实际的pdftotext.exe完整路径,修正后的代码如下:
public function TextFromPdf(Request $pdfFile)
{
    if (isset($pdfFile)) {
        $file = $pdfFile->file('pdfFile');
        $fileName =  'PDF File '.time() . '-' . $file->getClientOriginalName();
        $file->storeAs('',$fileName);
        $filePath =  Storage::disk('local')->path($fileName);
        
        // 这里替换成你实际的pdftotext.exe完整路径
        $text = (new Pdf ('C:\tools\poppler\bin\pdftotext.exe'))
            ->setPdf($filePath)
            ->text();
         return view('CV_test.pdf', compact('text'));
    }
}
  1. 可选优化:配置环境变量
    如果你不想每次都传路径,可以把Poppler的bin目录路径加到Windows系统的PATH环境变量中,之后直接用new Pdf()实例化即可,不需要传路径参数。

额外注意事项

  • 确保PHP运行身份对pdftotext.exe有执行权限,对PDF文件的存储目录有读写权限
  • 如果你是Linux/macOS环境,直接通过包管理器安装poppler-utils即可,不需要手动指定路径(默认会加入系统PATH)

内容的提问来源于stack exchange,提问作者Rabik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 02:36:03