I am using html2canvas to convert webpage as image script is working fine, but how can I download or print only modal area instead of the entire body
I have tried with below link but not got the success https://codepen.io/anon/pen/PBGaMP
// html2canvas <- https://html2canvas.hertzen.com/dist/html2canvas.min.js
// code reference: https://stackoverflow.com/questions/31656689/how-to-save-img-to-users-local-computer-using-html2canvas
setUpDownloadPageAsImage();
function setUpDownloadPageAsImage() {
document.getElementById("download-page-as-image").addEventListener("click", function() {
html2canvas(document.body).then(function(canvas) {
console.log(canvas);
simulateDownloadImageClick(canvas.toDataURL(), 'file-name.png');
});
});
}
function simulateDownloadImageClick(uri, filename) {
var link = document.createElement('a');
if (typeof link.download !== 'string') {
window.open(uri);
} else {
link.href = uri;
link.download = filename;
accountForFirefox(clickLink, link);
}
}
function clickLink(link) {
link.click();
}
function accountForFirefox(click) { // wrapper function
let link = arguments[1];
document.body.appendChild(link);
click(link);
document.body.removeChild(link);
}
<div id="modal1" class="modal" >
<div class="modal-content" style="background-color: green;">
<h4 style="color: honeydew;">Modal Header</h4>
<script> document.write(new Date().toLocaleDateString()); </script>
<p>Google</p>
</div>
<div class="modal-footer">
<button id="download-page-as-image">Download</button>
<a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat"><i class="material-icons">close</i></a>
</div>
</div>