添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
return view('ビューファイル名'); // デバッグ時の確認用。PDF出力時はコメントアウトする
// PDF出力時
$pdf = PDF::loadView('ビューファイル名');
return $pdf->stream();

おじさんもハマっていたのですが、原因はパスの指定方法にありました。

<meta charset="utf-8"> <link rel="stylesheet" href="../css/reset.css"> <link rel="stylesheet" href="../css/pdf.css"> </head>

デバッグ作業時に出力したHTMLでは、問題なく css を認識してくれたのですが、PDF出力すると css を認識してくれませんでした。

もしかすると、domPDFはパスの認識方法が違うのでは?
と考えました。

<meta charset="utf-8"> <link rel="stylesheet" href="{{asset('/css/reset.css')}}"> <link rel="stylesheet" href="{{asset('/css/pdf.css'}}"> </head>

asset() は、public ディレクトリのパスを返すヘルパー関数です。
これはイケるかと思ったのですが、おじさんの環境ではタイムアウトしてしまいました。

うまくいった例

うまく css を認識してくれたのは、下記のような記載です。

<!DOCTYPE html>
  <meta charset="utf-8">
/* HTMLデバッグ時の確認用
  <link rel="stylesheet" href="../css/reset.css">
  <link rel="stylesheet" href="../css/pdf.css">
  <link rel="stylesheet" href="{{public_path('css/reset.css')}}"> // 
  <link rel="stylesheet" href="{{public_path('css/pdf.css')}}">
</head>

 pubic_path() は、asset() 同様、public ディレクトリのパスを返すヘルパー関数ですが、asset() がURLを返すのに対して、pubic_path() は完全パスを返します。
本記事の例では、以下の値を返します。

public_path('css/reset.css') ⇒/home/laravel/public/css/reset.css
public_path('css/pdf.css') ⇒ /home/laravel/public/css/pdf.css 

 domPDF を使用する際、スタイルシートのパスは public_path() ヘルパー関数を使用しましょう。

以上、参考になればうれしいです。