html2canvas to render document PDF with css styling using angular2/typescript

后端 未结 5 733
情话喂你
情话喂你 2021-01-02 05:24

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

相关标签:
5条回答
  • 2021-01-02 06:10

    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);
    
    0 讨论(0)
  • 2021-01-02 06:15

    In 2018:

    html2canvas(document.body).then((canvas) => {
        window.open().document.write('<img src="' + canvas.toDataURL() + '" />');
      });
    
    0 讨论(0)
  • 2021-01-02 06:22
    myClickFunction(event: any) {
    html2canvas(event.target)
      .then((canvas) => {
        var img = canvas.toDataURL()
        window.open(img);
      })
      .catch(err => {
        console.log("error canvas", err);
      });
    }
    
    0 讨论(0)
  • 2021-01-02 06:24

    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/html2canvasI could use the lib via require but not via the import:

    html2canvas = require('hmtl2canvas');
    
    0 讨论(0)
  • 2021-01-02 06:27

    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);
    });
    
    0 讨论(0)
提交回复
热议问题