私は私のプロジェクトの一つにdashaboardの統計に取り組んでいる、と私は私のダッシュボードにチャートを追加するC3jsを使用していて、すべてのそれは正常に動作し、json get要求からデータを読み込むときにc3jsをPDFにエクスポートするにはどうすればいいですか?
が、私は使用してこのダッシュボードのPDFファイルを生成したいときRotativa Pluginとwkhtmltopdfは正しく動作しませんが、データを含むpdfを生成しますが、グラフは表示しません。
これはJsonを使用している場合にのみ発生しますが、データを直接挿入すると正常に動作します。
コンファレンスアプリケーション:
サーバー側:ASP.Net MVC5
クライアント側:Javascriptを、Rotativa、C3js
Exemple
コントローラー:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Print()
{
return new ViewAsPdf("Index");
}
public JsonResult Data()
{
var d1 = new ArrayList() { "Data1", 1, 4, 7, 8, 10 };
return Json(d1 , JsonRequestBehavior.AllowGet);
}
}
ビュー:
しかし、私は印刷アクションを実行するとき、それはチャートなしsamply空白です:
<div id="chart" style="width:500px;height:300px"></div>
@section scripts{
<script>
var chart = c3.generate({
bindto: '#chart',
data: {
url: "http://localhost:58762/Home/Data",
mimeType: 'json',
type: 'bar',
}
});
</script>
}
は、Webページ(インデックスアクション)でレンダリングします。
アップデート私はまた別の方法ではなく、成功せずに問題を解決しようとしている
:私はせずにチャートを描画した後、私はシンプルなAJAXリクエストでデータを盗ん を、変数にデータを保存c3グラフ関数にajaxを呼び出します。 htmlレンダリングは完全にうまくいきますが、pdfの印刷は機能しません。私のファイル怒鳴るがあります:
<div id="chart" style="width:500px;height:300px">Example 1</div>
@section scripts{
<script>
dataT= $.ajax({
method:'GET',
url: 'http://localhost:58762/Home/Data',
context: document.body,
global: false,
async: false,
success: function (result) {
return result;
}
}).responseJSON;
datad = [
['data1', 30, 200, 100, 400, 150, 250],
['data2', 130, 100, 140, 200, 150, 50]
];
console.log('Datad: ' + datad);
console.log('DateT: ' + dataT);
var chart = c3.generate({
data: {
columns: dataT,
type: 'bar'
},
bar: {
width: {
ratio: 0.5
}
}
});
</script>
}
私はこの問題が第3の提案に関連していると確信しています。私は別の方法で問題を解決しようとしています。あなたが私に従う方法を教えていただけたら、上記を見てください。ありがとうございました –
基本的にあなたのAJAX呼び出しに問題があります。私が(2)で掲示したリンクをチェックしてください。プラグインはサーバが動作するためにCORSを許可する必要があります。これが問題であるかどうかを確認する最良の方法は、AJAXリクエストを処理するメソッドにブレークポイントを設定し、あなたがPDFページを取得しようとすると。 – damianmr