我想生成檔案并將生成pdf的pdf 檔案存盤在檔案名中。以下是我嘗試過的。我也遇到了以下錯誤。任何幫助深表感謝。viewcertificate_templatepubliccertificate.pdf
use Barryvdh\DomPDF\PDF;
return PDF::loadView('certificate_template', $data)->stream();
//$file='certificate.pdf';
我已經安裝dompdf了composer require barryvdh/laravel-dompdf.
添加了正確的providers& aliasesin config\app.php。
上面的代碼給了我錯誤
錯誤:在第 133 行的檔案 C:\wamp\abc\vendor\barryvdh\laravel-dompdf\src\PDF.php 的物件背景關系中使用 $this
所以我嘗試了下面的代碼,然后我得到了錯誤
ArgumentCountError:函式 Barryvdh\DomPDF\PDF::__construct() 的引數太少,在第 415 行的 C:\wamp\www\abc\app\Http\Controllers\CertificatesController.php 中傳遞了 0,而檔案 C 中預期的正是 4: \wamp\www\abc\vendor\barryvdh\laravel-dompdf\src\PDF.php 在第 49 行
$pdf=new PDF;
return $pdf->loadView('certificate_template', $data);
編輯
下面的代碼保存 pdf 檔案,但它是二進制格式。我希望它以原始格式存盤。我該怎么做?
$pdf=app()->make(PDF::class);
$pdf->loadView('certificate_template', $data);
$pdf->save('certificate_template.pdf');
return $pdf;
uj5u.com熱心網友回復:
嘗試這個
$pdf = PDF::loadView('certificate_template', $data);
$pdf->save('certificate_template.pdf');
return $pdf;
uj5u.com熱心網友回復:
使用示例代碼運行良好。檢查我的方式:
將此內容設定為routes\web.php:
Route::get('/', function () {
// return view('welcome');
// Work1
// $pdf = App::make('dompdf.wrapper');
// $pdf->loadHTML('<h1>Test</h1>');
// return $pdf->stream();
// Work2
$data = [
'text1'=>'<h1>Test</h1><div >This line is red color</div>',
'text2'=> 'Just text'
];
return PDF::loadView('template_one', $data)->stream();
});
帶有示例文本resources\views\template_one.blade.php:
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Template One</title>
<style>
.text-red {
color: red;
}
</style>
</head>
<body>
This is my page of test!
{!! $text1 !!}
<br/>
{{ $text2 }}
</body>
</html>
你會得到成功的結果!
更新
要獲取內容檔案,您可以使用以下代碼:
// Work3
$data = [
'text1'=>'<h1>Test</h1><div >This line is red color</div>',
'text2'=> 'Just text'
];
$pdf = app('dompdf.wrapper');
$pdf->loadView('template_one', $data);
// To save content as your desire
return $pdf->output();
uj5u.com熱心網友回復:
您需要更改控制器頂部的匯入類,因此只需替換
use Barryvdh\DomPDF\PDF;
和
use Barryvdh\DomPDF\Facade\Pdf;
或者干脆
use PDF;
就這樣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/444821.html
