使用FPDI时,使用正确的源URL出现“无法打开pdf”错误

时间:2019-05-22 14:46:39

标签: php laravel pdf-generation fpdf 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 !"

1 个答案:

答案 0 :(得分:1)

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

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

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