При скачивании билетов на мероприятие срабатывает функция, которая переводит билет в canvas
При скачивании билетов на мероприятие срабатывает функция, которая переводит билет в canvas. Используются библиотеки html2canvas и jspdf. Происходит повторная загрузка файлов. Хотелось бы разобраться. Это так работают эти библиотеки или где-то ошибка в коде. Если так работают библиотеки, как это можно избежать. Спасибо.
vs.addScript('/static/vendor/jspdf/dist/jspdf.min.js',function(){
vs.addScript('/static/vendor/html2canvas/dist/html2canvas.min.js',function(){
// document.domain
html2canvas(document.getElementById(id), {
onclone: function (doc) {
let item_ticket = doc.querySelectorAll('.item-ticket');
item_ticket.forEach(el => {
el.style.boxShadow = 'none',
el.style.border = '1px solid #333'
})
let advert_items = doc.querySelectorAll('.advert_items')
advert_items.forEach((el) => {
el.remove();
})
let wrapper_info = doc.querySelectorAll('.wrapper_info');
wrapper_info.forEach(el => {
el.style.boxShadow = 'none'
})
},
useCORS: true,
allowTaint: true
}).then(canvas => {
let quality = 1;
let myImage = {
data: canvas.toDataURL('image/jpeg', quality),
height: canvas.height,
width: canvas.width
};
let w = Math.floor(myImage.width * 0.264583);
let h = Math.floor(myImage.height * 0.264583);
let orientation = w > h ? 'l' : 'p';
let docPDF = new jsPDF(orientation, 'mm', [w, h]);
docPDF.addImage(myImage.data, 'JPEG', 0, 0);
docPDF.save('ticket.pdf');
}).then(() => vs.loaderOff())
});
});
Источник: Stack Overflow на русском