无法在php 7.1中使用mpdf生成pdf

时间:2017-04-28 02:26:58

标签: php laravel pdf mpdf

我尝试使用mpdf生成一个简单的pdf。

我使用的是:

1) php 7.1
2) Laravel 5.3
3) mpdf dev-master version

这就是我编写mpdf代码的方法。

    $mpdf = new \Mpdf\Mpdf();
    $mpdf->WriteHTML('<h1>Hello world!</h1>');
    $mpdf->Output("test.pdf", "D");

但它不会下载并返回给我一些奇怪的回复。但它成功地执行了代码。

CHROME

Chrome error

FIREFOX

firefox error

有人能帮助我吗?有点困难这一整天。

2 个答案:

答案 0 :(得分:0)

假设您的代码位于控制器中,您可能必须return,所以添加return

return $mpdf->Output("test.pdf", "D");

如果仍然无效,您可以尝试将其返回浏览器:

return $mpdf->Output("test.pdf", 'I');

旁注:还有一个特定于Laravel的优秀文章,其功能类似于魅力:https://github.com/barryvdh/laravel-dompdf

答案 1 :(得分:0)

执行以下操作:

  1. 确保您的项目符合mpdf要求,并且已安装所有依赖项和php库。

    需要

    ext-mbstring: *
    setasign/fpdi: 1.6.*
    php: ^5.6 || ~7.0.0 || ~7.1.0
    ext-gd: *
    psr/log: ^1.0
    paragonie/random_compat: ^2.0
    

    需要(开发)

    phpunit/phpunit: ^5.0
    mockery/mockery: ^0.9.5
    squizlabs/php_codesniffer: ^2.7.0
    tracy/tracy: ^2.4
    phpstan/phpstan: ^0.6.4
    
  2. 以下代码适用于我:

    $storage_path = storage_path();
    $mypdf = new mPDF(['tempDir' =>  $storage_path . '/app', 'margin_left' => 0, 'margin_right' => 0,
    'margin_top' => 0, 'margin_bottom' => 0, 'margin_header' => 0, 'margin_footer' => 0]);
    $mypdf->SetDisplayMode('fullpage');
    $mypdf->WriteHTML(file_get_contents($job_letter_css), 1);
    $mypdf->WriteHTML($content, 2);
    
    $structure = "./job_letters/{$id}/";
    if (file_exists($structure)) {
        $file_name = $structure ."job_offer_letter.pdf";
    } else {
        mkdir($structure, 0777, true);
        $file_name = $structure ."job_offer_letter.pdf";
    }
    $mypdf->Output($file_name, 'F');