I trying to include a bar chart in my jsreport using apexchart but I keep getting chart without any bars or labels. I don't know what I am doing wrong. The engine is handlebars and the recipe is chrome-pdf.
here is the data
{
"Completedcalls": [
{
"Bloemfontein": 2
},
{
"Mafube": 5
},
{
"Phumelela": 6
},
{
"Total": 13
}
]
}
and here is the code for plotting the chart
<script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
<div id="myFirstChart"></div>
<script>
console.log('mango jerry')
var a = {{{ReadData Completedcalls}}};
var options = {
chart: {
type: 'bar',
toolbar: {
show: false,
},
},
plotOptions: {
bar: {
horizontal: false
}
},
series: [{
data: {{{ReadData Completedcalls}}}
}]
}
var element = document.querySelector("#myFirstChart");
console.log(element);
var chart = new ApexCharts(element, options);
chart.render();
</script>
That is most likely because the charting library uses animation which isn't yet finished when the printing of the pdf is triggered.
Try to disable animation using
In case you get into a situation when you need to wait for some async task, you can use chrome-pdf recipe printing triggers to postpone printing.