How to generate an output file PDF using html2canvas with angular2
I tried to import the file html2canvas typescript and made a declaration like this to use it
If you are using Angular 4 you can include html2canvas under scripts list in .angular-cli.json as below
"scripts": [
"../node_modules/html2canvas/dist/html2canvas.min.js"
]
After that import it in your class as below
import * as html2canvas from "html2canvas"
and then use it in your functions as below
html2canvas(parameters);
In 2018:
html2canvas(document.body).then((canvas) => {
window.open().document.write('<img src="' + canvas.toDataURL() + '" />');
});
myClickFunction(event: any) {
html2canvas(event.target)
.then((canvas) => {
var img = canvas.toDataURL()
window.open(img);
})
.catch(err => {
console.log("error canvas", err);
});
}
I could use html2canvas with the followings changes:
package.json:
"dependencies": {
"html2canvas": "0.5.0-beta4",
"@types/html2canvas": "0.5.32",
}
After using npm install
I could use html2canvas in my component.ts files like this:
import * as html2canvas from "html2canvas"
test() {
html2canvas(document.body, {
onrendered: function(canvas) {
var img = canvas.toDataURL()
window.open(img);
}
});
}
Without installing @types/html2canvas
I could use the lib via require but not via the import:
html2canvas = require('hmtl2canvas');
This is in addition to above answer, i.e. add @types/html2canvas to dependencies and add import statement in your code.
However, using the above sample code, I am getting error in VisualStudioCode i.e.
'onrendered' does not exist in type 'Html2CanvasOptions'.
To resolve that, I used "then" as below:
html2canvas(document.body).then((canvas) => {
document.body.appendChild(canvas);
});