Reputation: 7153
Iam doing screenshot using html2canvas with this method:
makeScreenshot: function (button) {
html2canvas(document.body, {
onrendered: function(canvas) {
new Ext.Window({
title: 'Screenshot',
width: 800,
height: 600,
resizable: true,
autoScroll: true,
preventBodyReset: true,
html: '<img src="' + canvas.toDataURL("image/png") + '" height="800"/>'
}).show();
}
});
}
getting this screenshot (on the image left dialog/window named Screeshot)
as you can see, google map is not generated, just circles. also a charts ar not in the screenshot. what is wrong?
Upvotes: 2
Views: 2995
Reputation: 2202
Add useCORS: true will solve this issue.
makeScreenshot: function (button) {
html2canvas(document.body, {
useCORS: true,
onrendered: function(canvas) {
new Ext.Window({
title: 'Screenshot',
width: 800,
height: 600,
resizable: true,
autoScroll: true,
preventBodyReset: true,
html: '<img src="' + canvas.toDataURL("image/png") + '" height="800"/>'
}).show();
}
});
}
Upvotes: 3
Reputation: 1
For Google chart i spent all the night to find a solution and finally it was so simple: before calling html2canvas, convert the charts rendered to canvas with canvg(). Charts of Google are svg.
Upvotes: 0
Reputation: 117314
The map-tiles are images which may not be rendered, because the are located on a different domain.
From the documentation:
Limitations
All the images that the script uses need to reside under the same origin for it to be able to read them without the assistance of a proxy.
Upvotes: 3