У меня есть проблема.Я нахожусь на Laravel и мне нужно экспортировать HTML-страницу в PDF.Поэтому я использую barryvdh/laravel-dompdf
, я пытался экспортировать некоторые данные и изображения, и это работает нормально.Дело в том, что мне нужно экспортировать Canvas LineChart в PDF, поэтому я конвертирую холст в изображение раньше, он работает в моем представлении, но не в моем PDF.Я использую этот скрипт для создания графиков: https://mdbootstrap.com/javascript/charts/
Вот мой код:
// Controller code
public function pdf($name)
{
$MyObject = Object::where('name', $name)->first()->toArray();
$pdf = PDF::loadView('pdf.object', compact('object'));
// If I want to return and test with my view I use this line
return view('pdf.object', compact('object'));
// If I want to download the pdf I use this line
return $pdf->download($object['name'] . '.pdf');
}
// HTML Canvas + The script I use
<canvas id="myChart"></canvas>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="{{ asset('js/mdb.min.js') }}"></script>
// JS Code
var ctxL = document.getElementById("myChart").getContext('2d');
var myLineChart = new Chart(ctxL, {
type: 'line',
data: {
labels: ["label1","label2","label3"],
datasets: [
{
label: "My first line",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
borderColor : "rgb(66, 40, 124)",
pointBackgroundColor : "rgb(66, 40, 124)",
pointHoverBorderColor : "rgb(66, 40, 124)",
backgroundColor: "transparent",
data: [15, 9, 13]
},
{
label: "My second line",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
borderColor : "rgb(120, 60, 135)",
pointBackgroundColor : "rgb(120, 60, 135)",
pointHoverBorderColor : "rgb(120, 60, 135)",
backgroundColor: "transparent",
data: [3, 9, 4]
}
]
},
options: {
responsive: true,
animation: false
}
});
var canvas = $('#myChart');
var dataURL = canvas.get(0).toDataURL();
var img = $("<img style='width:100%;height:auto;'></img>");
img.attr("src", dataURL);
canvas.replaceWith(img);
Когда я экспортирую, мой холст не отображается, но, на мой взгляд, мой холстизображение, что-то, что я не видел неправильно в моем коде?Заранее спасибо!