使用 FPDI 时使用正确的源 url 时出现 'Cannot open pdf' 错误

Getting 'Cannot open pdf' error with a correct source url when using FPDI

我正在尝试编辑 laravel 中的 pdf。我在我的控制器中创建了以下函数,它有 use FPDIuse FPDF

static function getHigherPDF() {

    $pdf = new FPDI();
    $pdf->AddPage();
    $pdf->setSourceFile('/pdf/higher.pdf');
    $tplIdx = $pdf->importPage(1);
    $pdf->useTemplate($tplIdx, 10, 10, 100);
    $pdf->Output();
    $pdf->SetFont('Helvetica');
    $pdf->SetTextColor(255, 0, 0);
    $pdf->SetXY(30, 30);
    $pdf->Write(0, 'This is just a simple text');

    return $pdf;

}

我一直收到以下错误,我不知道为什么,如果我将带有 http:// 等的完整路径放入 pdf,我什至会收到错误。当我转到该文件时,pdf 在我的浏览器中打开。如果文件 url 是有效的 url

,我找不到任何关于为什么会发生这种情况的信息

有什么想法吗?

{message: "Cannot open /pdf/higher.pdf !", exception: "InvalidArgumentException",...}
exception: "InvalidArgumentException"
file: "/home/vagrant/code/brainskills-at-work/vendor/setasign/fpdi/pdf_parser.php"
message: "Cannot open /pdf/higher.pdf !"

您应该使用 laravel 生成器为 public 路径引用您的文件:

$pdf->setSourceFile(public_path('/pdf/higher.pdf'));

这将在您的文件系统上生成文件的绝对路径。