我已经安装了' 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上工作。
答案 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,
- &GT;在别名下添加代码行,
'PDF' => 'Barryvdh\DomPDF\Facade' not 'PDF' => Barryvdh\DomPDF\Facade::class,
记住引号和逗号!检查上面的图片,
- &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');