You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.5 KiB
76 lines
2.5 KiB
let { Buffer } = require("buffer");
|
|
const {ChartJSNodeCanvas} = require("chartjs-node-canvas");
|
|
|
|
const dependencies = {
|
|
chartJS: require("chartjs-node-canvas")
|
|
};
|
|
|
|
const constants = {
|
|
TYPES: ['PNG', 'SVG'],
|
|
smalll: {
|
|
height: 400,
|
|
width: 400
|
|
},
|
|
medium: {
|
|
height: 500,
|
|
width: 500
|
|
}
|
|
};
|
|
|
|
(async () => {
|
|
console.log("Creating Chart Object");
|
|
const { CanvasRenderService } = dependencies.chartJS;
|
|
const { height, width } = constants.medium;
|
|
const renderService = new ChartJSNodeCanvas({ type: 'svg', width: 800, height: 600 });
|
|
/*let renderService = new CanvasRenderService(width, height, (ChartJS) => {
|
|
ChartJS.defaults.global.animation = false;
|
|
ChartJS.defaults.global.responsive = false;
|
|
}, 'SVG'); //Tried SVG and svg*/
|
|
try {
|
|
let buffer = await renderService.renderToBufferSync({
|
|
type: 'bar',
|
|
data: {
|
|
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
|
|
datasets: [{
|
|
label: '# of Votes',
|
|
data: [12, 19, 3, 5, 2, 3],
|
|
backgroundColor: [
|
|
'rgba(255, 99, 132, 0.2)',
|
|
'rgba(54, 162, 235, 0.2)',
|
|
'rgba(255, 206, 86, 0.2)',
|
|
'rgba(75, 192, 192, 0.2)',
|
|
'rgba(153, 102, 255, 0.2)',
|
|
'rgba(255, 159, 64, 0.2)'
|
|
],
|
|
borderColor: [
|
|
'rgba(255, 99, 132, 1)',
|
|
'rgba(54, 162, 235, 1)',
|
|
'rgba(255, 206, 86, 1)',
|
|
'rgba(75, 192, 192, 1)',
|
|
'rgba(153, 102, 255, 1)',
|
|
'rgba(255, 159, 64, 1)'
|
|
],
|
|
borderWidth: 1
|
|
}]
|
|
},
|
|
options: {
|
|
/*scales: {
|
|
yAxes: [{
|
|
ticks: {
|
|
beginAtZero: true
|
|
}
|
|
}]
|
|
}*/
|
|
}
|
|
}, 'image/svg+xml');
|
|
//When I run this I dont get anthing below this to print out
|
|
console.log("Finished");
|
|
console.log();
|
|
const fs = require('node:fs');
|
|
fs.writeFileSync('image.svg', buffer, 'utf8');
|
|
//let base64Str = Buffer.from(buffer).toString("base64");
|
|
//console.log(base64Str);
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|
|
})();
|