Laravel 5.1 - barryvdh / laravel-dompdf,PDF文件下载无法正常工作

时间:2015-12-28 12:35:18

标签: php laravel dompdf

我已经安装了' barryvdh / laravel-dompdf'使用作曲家并添加这些行

Barryvdh\DomPDF\ServiceProvider::class
'PDF'=>  Barryvdh\DomPDF\Facade::class

到app.php'在' config'中输入文件文件夹,还创建了PdfController,就像这样

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App;
use PDF;

class PdfController extends Controller
{
    public function invoice()
    {
        $pdf = App::make('dompdf.wrapper');
        $pdf->loadHTML('<h1>Test</h1>');
        return $pdf->stream('testfile')
               ->header('Content-Type','application/pdf');
    }
}

现在代码工作正常,内容以pdf格式显示在浏览器中,但是当我下载此文件时,该文件没有任何扩展名。我试图修改包含返回代码的行,如

return $pdf->stream('testfile.pdf')
                   ->header('Content-Type','application/pdf');

但是现在,页面直接提供了要下载名称&#39; document.pdf&#39; 下载时显示错误,(不要知道这个名称&#39; document.pdf&#39;来自何处)。 我也在localhost上工作。

3 个答案:

答案 0 :(得分:2)

你想用pdf做什么?要在浏览器中显示还是要下载到光盘? 这是下载pdf的示例

return $pdf->download('pdfName.pdf'); 

示例来自我的代码,其中我以PDF格式显示笔记本信息

   $laptop = Notebook::findOrFail($id);
        $data['laptop'] = $laptop;
        $pdf = \PDF::loadView('pdf.detaljiLaptop', $data);

        return $pdf->download($laptop->modelName.' Computers.pdf'); 

答案 1 :(得分:1)

我遇到了同样的问题,在搜索完全没有结果后,我决定使用代码,这对我有用。

在config / app.php内部

- &GT;在提供者下添加代码行,

'Barryvdh\DomPDF\ServiceProvider' not Barryvdh\DomPDF\ServiceProvider::class,

enter image description here

- &GT;在别名下添加代码行,

'PDF'       => 'Barryvdh\DomPDF\Facade' not 'PDF' => Barryvdh\DomPDF\Facade::class,

enter image description here

记住引号和逗号!检查上面的图片,

- &GT;在你的控制器中添加代码行, 使用App;

希望你会很高兴....使用代码行进行测试。将它们置于控制器的方法中。

$pdf = App::make('dompdf.wrapper');
$pdf->loadHTML('<h1>Test</h1>');
return $pdf->stream();

成功后,您的浏览器将打开一个带有白色PDF并带有单词Test

的PDF Viewer

干杯,享受您的编码;)

答案 2 :(得分:0)

我使用此代码view()->share($data); $pdf = PDF::loadview('sale.pdf'); return $pdf->download('slip_out.pdf');

而不是

return $pdf->stream('testfile.pdf')
               ->header('Content-Type','application/pdf');