使用Angular 4将HTML表单保存为PDF或Docx

时间:2017-12-12 19:52:07

标签: jquery node.js angular

我目前正在使用Node和MySQL运行Angular 4。我有一个表单,在提交时,应该打开另存为..提示,以便输入的表单内容将保存为PDF或Word文档。

我已经尝试过使用htmlDox和saveAs但是我在错误后不断收到错误。有更简单的方法吗?

感谢。

2 个答案:

答案 0 :(得分:0)

Jspdf是一个在javascript应用程序中使用的流行库。试试吧。

答案 1 :(得分:0)

这就是我制作自己的PDF所做的事情。

<强> component.ts

import * as pdfMake from 'pdfmake/build/pdfmake';
import * as pdfFonts from 'pdfmake/build/vfs_fonts';
...
...
constructor() {
  pdfMake.vfs = pdfFonts.pdfMake.vfs; 
}
...
...

this.makePdf().then(function(results) {
  pdf = results;
  ///
  //You can now send your doc to the api and save it do a database.
  ///
  }).catch(e => {
    console.log(e);
});


makePdf():Promise<any> {
  this.docDefinition =  { 
    content: [ ... ]
  }

  return new Promise(resolve => {
    pdfMake.createPdf(this.docDefinition).getBase64(function(buffer) {
      resolve(buffer);
    });
  });
}

我不得不使用一个承诺因为生成文件花了太长时间。这样您就可以等待文档生成完毕并继续使用您的代码。