Feb 27, 2023
// function to download the qr code
// function to download the qr code
function downloadQRCodeCanvas() {
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
const pngUrl = canvas
.toDataURL('image/png')
.replace('image/png', 'image/octet-stream');
let downloadLink = document.createElement('a');
downloadLink.href = pngUrl;
downloadLink.download = 'qrcode.png';
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
}// function to download the svg qr code
// function to download the svg qr code
function downloadQRCode() {
const svg = document.querySelector('svg') as SVGSVGElement;
const svgData = new XMLSerializer().serializeToString(svg);
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
const img = new Image();
img.onload = function () {
canvas.width = img.width;
canvas.height = img.height;
ctx?.drawImage(img, 0, 0);
const pngUrl = canvas
.toDataURL('image/png')
.replace('image/png', 'image/octet-stream');
let downloadLink = document.createElement('a');
downloadLink.href = pngUrl;
downloadLink.download = 'qrcode.png';
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
};
img.src = 'data:image/svg+xml;base64,' + btoa(unescape(encodeURIComponent(svgData)));
}// function to download react view as jpeg using html-to-image
// function to download react view as jpeg using html-to-image
function downloadQRCodeReact() {
const node = document.querySelector('.card') as HTMLElement;
toJpeg(node)
.then(function (dataUrl) {
var img = new Image();
img.src = dataUrl;
let downloadLink = document.createElement('a');
downloadLink.href = img.src;
downloadLink.download = 'qrcode.jpeg';
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
});
}