【问题标题】:Laravel 5.1 - barryvdh/laravel-dompdf, PDF file download not working properlyLaravel 5.1 - barryvdh/laravel-dompdf,PDF 文件下载无法正常工作
【发布时间】:2016-04-02 07:26:48
【问题描述】:

我已经使用 composer 安装了“barryvdh/laravel-dompdf”并添加了这些行

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

到'config'文件夹中的'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 格式显示在浏览器中,但是当我下载此文件时,该文件没有任何扩展名。我尝试修改包含返回代码之类的行

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

但是现在,页面直接提供了文件名'document.pdf'下载 下载时显示错误,(不知道这个名称“document.pdf”的来源和来源)。 我也在本地主机上工作。

【问题讨论】:

  • 尝试$pdf-&gt;stream('testfile.pdf') 不带-&gt;header('Content-Type','application/pdf'); 可能dompdf 自己发送标头
  • 感谢您的快速响应,但我已经尝试过了..& 问题仍然存在.. :(

标签: php laravel dompdf


【解决方案1】:

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

config/app.php 里面

-> 在 providers 下添加这行代码,

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

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

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

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

-> 在您的控制器中添加代码行, 使用应用程序;

希望你一切顺利......使用代码行进行测试......将它们放在控制器中的方法中。

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

成功后,您的浏览器将打开一个 PDF 查看器,其中包含带有单词 Test 的白色 PDF

干杯,享受你的编码;)

【讨论】:

    【解决方案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'); 
    

    【讨论】:

    • @SJBansod 此代码实际上正在运行。我以同样的方式这样做。您遇到了什么错误或不当行为?
    • 谢谢。我实际上想下载该文件。,但它也无法正常工作。,,我使用的是版本有点旧的firefox ..但是当我在不同的浏览器中测试它时...(chrome),两个代码(原始代码我已经发布了问题和其他下载 pdf )工作正常...教训:使用 dompdf 时在不同的浏览器中测试它:)
    【解决方案3】:

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

    而不是

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2019-11-12
      • 2018-06-30
      • 2021-03-24
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多