小ネタです。
Laravel-DomPDFで、独自のheaderを追加したい場合の対処法です。
通常のダウンロード処理
公式ドキュメントは下記です。
従来の方法
例えば、ファイルをブラウザで表示せずダウンロードする場合、下記のheader を指定します。
Content-Disposition: attachment;
laravel-DomPDFの場合
headerを書かなくてもdownload()
関数で出力すれば同じ事をしてくれます。
<?php // 既にプロバイダーで「PDF」と「Laravel-DomPDF」を連携している状態とします。 $pdf = \PDF::loadView('view'); return $pdf->download('sample.pdf');
しかし、関数で定義するherader 以外の要素は追加できません。
独自のヘッダーを適用したい場合
独自のヘッダーを定義する場合、 Laravel-DomPDF独自のdownload()
もしくは、ブラウザで表示するためのstoream()
のような独自の出力関数は使用しません。
Laravel-DomPDFのoutput()
でデータのみ出力して、header()
関数をで独自の要素を定義します。
この方法でdownload()
関数の機能を再現しつつ、新しいheaderを追加できます。
例) Internet Explorerのファイル名文字化け対策
<?php // 独自でヘッダーを定義 header('Content-Type: application/pdf'); header('Content-Disposition: attachment; filename*=UTF-8\'\'' . rawurlencode('日本語.pdf')); $pdf = \PDF::loadView('view'); return $pdf->output();