StackOverflowで見つけようとしましたが、Googleにも試みましたが、関連する回答は見つかりませんでした。Laravel PDFをグラフで生成してメールで送信します。
グラフ/グラフを含むPDFを使用して、Laravelアプリケーションのユーザーに月次レポートを送信したいと考えています。
これは、それがすでにルートを作成し
に行われているものであるprintControllerで
Route::get('/print/', '[email protected]');
はDBから必要なすべてのデータを取得し、返却されたレポート機能を作成したと言うことができますユーザーデータを含むビュー
return view::make('monthly_report', $user_data);
monthly_reportビューでは、すべてのユーザーデータを取得し、ビューを表示し、データを含むグラフを作成します。チャートはCharts.jsで作成されます。それはキャンバスにあります。
Ajaxを使用して、生成されたグラフをイメージとしてサーバーに送信します。 、印刷制御部、saveChart関数で経路
Route::post('print/save', '[email protected]');
を保存
$data = base64_decode($data); //save chart on server file_put_contents("Charts/".$fileName, $data);
が次に別のビューmonthly_report2を使用してPDFレポートを作成するチャートを保存作成例えば
var canvas = document.getElementById("myChart"), // Get your canvas imgdata = canvas.toDataURL(); file_name = "<?php echo $chart_file_name; ?>"; //created with userId and date //send it to server $.ajax({ method: "POST", url: "save", data: { data: imgdata, file_name: file_name, _token: token, } });
、それはsaveChart関数にもあります。ビューmonthly_report2は、任意のJavaScriptを使用してmonthly_reportによって生成されたチャート画像を使用して、数6
$pdf = \PDF::loadView('monthly_report2', $cll_data); file_put_contents("reports/".$pdf_name, $pdf->output());
にこれは、サーバー上で生成されたPDFを保存しません。ここまでは順調ですね。
これらのPDFレポートを電子メールでユーザーに送信するには、特定の日付に毎月実行されるスケジュール/クローンジョブを作成し、PDFレポートを添付した電子メールを送信します。
わかりやすくするためにいくつかの詳細を省略します。詳細については、お問い合わせください。
は、これまでお読みいただきありがとうございました、今私は2つの質問
を持っている私がやっている方法が良いですかそれは改善することができますか?
このプロセスはすべて自動的に必要です(レポートの生成と電子メールによる送信)。 PDFを生成するには、monthly_reportビューを読み込む必要がありますか? Chartを生成してサーバーに送信します。自動的にpdfレポートを生成するようにスケジュールすることもできますか?いいえ、それを行う方法はありますか?
まず、私の質問を読んで答えてください。私はサーバー側でチャートをレンダリングするためのチュートリアルに進みます。私は、node.jsとjsdomを使って動的なグラフを生成するのはちょっと複雑なことだと思います。あなたが提供した他のすべての情報は素晴らしいです。ありがとう房: – qammar
何も問題がなければ、問題はないかもしれないが、多分upvoteできますか?チャートの自動生成が必須の場合は、常にhttps://packagist.org/packages/amenadiel/jpgraphのような専用サーバーサイドチャートジェネレータを調べることができます。これらのジェネレータは、簡単に電子メールに入れて送信できるイメージを作成します。 – Loek