如何将html2pdf库的输出存储到变量?

时间:2018-09-06 11:15:40

标签: javascript node.js html2pdf

我正在使用html2pdf库将我的网页转换为pdf。但是,我不知道如何将pdf存储在变量中,以便可以将其发送回服务器。此代码将打印新的pdf,但不会将值存储到doc。

var doc = html2pdf(element, {return: true});

2 个答案:

答案 0 :(得分:0)

var worker = html2pdf()

html2pdf()返回新的Worker对象。您可以使用称为输出的方法来获取数据。 参见:https://github.com/eKoopmans/html2pdf/blob/master/README.md

答案 1 :(得分:0)

浏览完文档和库的github page之后,我终于可以使用它了

let worker = await html2pdf().set(options).from(content).toPdf().output('blob').then( (data: Blob) => {
   return data
})

完整代码是

...
import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';
import * as html2pdf from 'html2pdf.js'
...
@ViewChild('pdfForm', { static: false, read: ElementRef }) pdfForm: ElementRef;
...

async createCanvass() {
  const content: Element  = this.pdfForm.nativeElement
  const options = {
    filename: `invoice-#003.pdf`,
    margin: [20,20],
    image: {type: 'png', quality: 1 },
    html2canvas: { dpi: 400, letterRendering: true },
    jsPDF: { unit: 'mm', format: 'a4', orientation: 'landscape' }
  }
  return {options: options, content: content}
}

async printPDF() {
  let { options, content } = await this.createCanvass()
  let worker = html2pdf().set(options).from(content).toPdf().output('blob').then( (data: Blob) => {
      return data
    })
  }

但是我应该提到我正在将Angular 8和TypeScript与该代码段一起使用,我认为Node.js和JavaScript的实现方式不会完全相同。