Как насчет использования плагина html -to-image для преобразования изображения в более низкое качество, а затем применения загрузки, как вы делаете.
npm установка --save html -to -image
Вы можете попробовать другой метод htmlToImage, вплоть до вас. То, что я использовал ниже:
htmlToImage.toJpeg(node, { quality: 0.95 }).then(function (dataUrl) {
let link = document.createElement('a');
link.download = "page" + '.jpeg';
link.classList.add("specialanchor")
link.href = dataUrl;
link.click();
}).catch(function (error) {
// console.error('oops, something went wrong!', error);
});
Чтобы узнать больше: https://www.npmjs.com/package/html-to-image