私はhtmlをpdfに変換するlaravel snappy fotを使用していますが、外部リンクが機能しないとエラーがスローされます。img タグがあり、src は lorem picsum です。私はWindowsマシンを使用していますが、本番環境ではなくローカルホストです。おそらくWindowsが問題なのかもしれませんが、よくわかりません。しかし、多くの回答を読み、public_path("image_path")、asset("image-path") などのすべての提案を使用しましたが、それらのどれも機能しませんでした。
終了ステータス コード '1' は、問題が発生したことを示します: stderr: "ページの読み込み中 (1/6) [> ] 0% [======> ] 10% [=========== =====> ] 28% エラー:ネットワーク ステータス コード 3 および http ステータス コード 0 でhttps://picsum.photos/200を読み込めませんでした - ホストが見つかりません [=========== =================================================] 100% カウント ページ (2/6)
[======================================= ====================] Object 1 of 1 リンクの解決 (4/6)
[================================================ ===========] オブジェクト 1 of 1 ヘッダーとフッターのロード (5/6) ページの印刷 (6/6) [> ] 準備 [============= ==============================================] 1ページ目ネットワーク エラーのためコード 1 で終了します: HostNotFoundError " stdout: "" コマンド: C:\wamp64\bin\wkhtmltopdf\bin\wkhtmltopdf --lowquality --page-height "1000px" --page-width "992px " "C:\Users\hpp_2\AppData\Local\Temp\knp_snappy5f8fcd256bf775.59730728.html" "C:\Users\hpp_2\AppData\Local\Temp\knp_snappy5f8fcd256d5fa6.11170764.pdf".
imgタグだけで長いのでhtmlの中身を全て追加する必要は無いと思います
<img src="https://picsum.photos/200">
ここにphpがあります:
public function downloadCv(Request $request)
{
$width = 992;
$height = 1000;
$html = file_get_contents('storage/cv-templates/01.html');
// $image = public_path().'\images\bg-25.png';
// dd($image);
// $html = str_replace('<!-- %img% -->', '<img src="file://'.$image.'" width="200" height="100">', $html);
// $html = str_replace('fontSrc', storage_path().'/fonts/Montserrat-Light.ttf', $html);
// return PDF::loadHtml($html)->setOptions(["isRemoteEnabled" => true])->setPaper([0,0, $width, $height])->setWarnings(true)->stream();
// return PDF::loadView('cv')->setPaper([0,0,$width, $height])->setWarnings(true)->stream();
// return $html;
// return view('cv');
return SnappyPdf::loadHtml($html)
->setOption('page-width', $width.'px')
->setOption('page-height', $height.'px')
->setOption('disable-external-links', false)
->setWarnings(true)
->inline();
}