나는 내 프로젝트 중 하나에 dashaboard 통계에 일하고 있어요, 그리고 나는 C3js 내 대시 보드에 차트를 추가 사용하고, 모든 것이 잘 작동json get 요청에서 데이터를로드 할 때 c3js를 PDF로 내보내는 방법은 무엇입니까?
을하지만 난이 대시 보드의 PDF를 사용하여 생성 싶어 할 때 Rotativa 플러그인 및 wkhtmltopdf,하지만 제대로 작동하지 않습니다, 그것은 데이터가 있지만 차트를 보여주는 PDF를 생성합니다.
이것은 Json을 사용하는 경우에만 발생하지만 데이터를 직접 삽입하면 정상적으로 작동합니다.
컨퍼런스 응용 프로그램 :
서버 측 : ASP.Net MVC5
클라이언트 측 : 자바 스크립트, 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);
}
}
보기 :
<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>
}
웹 페이지 (색인 작업)에 렌더링 : 나는 인쇄 작업을 실행할 때, 그것은 차트없이 samply 빈의
하지만.
업데이트 나는 또한 다른 방법으로하지만 성공하지 않고 문제를 해결하기 위해 노력하고있어
: 나는하지 않고 차트를 그릴 후, 나는 간단한 아약스 요청과 데이터를 retreive 과 변수에 데이터를 저장 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>
가}
이 문제는 세 번째 제안과 관련이 있다고 확신하며 다른 방법으로 문제를 해결하려고합니다. 따라야 할 방법을 제안 할 수 있다면 위를보십시오. 고마워. –
기본적으로 AJAX 호출에 문제가있다. 내가 (2)에 게시 한 링크를 확인하십시오. 플러그인은 서버가 CORS가 작동하도록 허용해야합니다. 가장 좋은 방법은 AJAX 요청을 처리하는 메소드에 중단 점을 넣고 호출되는지 확인하는 것입니다 PDF 페이지를 가져올 때. – damianmr