2015-12-28 72 views
5

我已经安装了 'barryvdh/laravel-DOMPDF' 使用作曲家和增加这些线路Laravel 5.1 - barryvdh/laravel-DOMPDF,PDF文件下载不正常

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

在 'app.php' 文件'配置”文件夹,也创造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格式的浏览器,但是当我下载该文件,该文件没有任何extension.I尝试修改包含返回码的行,如

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

但现在,页面直接提供文件名为“document.pdf” ,显示错误而下载到下载,(不konw如何和这个名字的“document.pdf”是从哪里来的)。 另外我m本地主机上工作。

+0

试试'$ pdf-> stream('testfile。('Content-Type','application/pdf');'可能dompdf自己发送头文件 – Moppo

+0

感谢您的快速响应,但我已经尝试过了......问题仍然存在.. :( – SJB

回答

2

你想用pdf做什么?要在浏览器中显示或下载到光盘? 这个例子PDF下载从我的代码

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

例如其中i显示PDF笔记本信息

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

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

@SJBansod这个代码实际上是在工作,我这样做的方式是一样的,你得到的错误或不当行为是什么? –

+1

谢谢,我真的想下载这个文件,但它也没有工作。使用firefox有点旧版本..但是,当我测试它在不同的浏览器...(铬),这两个代码(原来的代码,我发布的问题和其他下载PDF格式)工作正常...教训:当使用dompdf测试它在不同的浏览器:) – SJB

1

我有同样的问题,寻遍无果后,我决定打与代码和这对我工作。

内部配置/ app.php

- >下提供者添加的代码行,

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

enter image description here

- >下别名添加的代码行,

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

enter image description here

注意引号和逗号!检查上面的图片,

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

希望,你会好的使用您的控制器的方法中的code..place他们的线去....测试。

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

成功时,您的浏览器将打开一个PDF浏览器与白色的PDF字测试

欢呼声,享受你的编码;)

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');