在Angular 2中生成pdf

时间:2016-09-02 09:35:57

标签: pdf angular pdf-generation

我再次提出另一个Angular 2问题。

我们正在尝试从html源生成PDF文件。我搜索并搜索试图为jsPdf或makePdf库找到一个Angular 2包装器,但我找不到任何。有什么我想念的吗?有一个纯粹的JavaScript方式,这是一个好的做法?希望你们能帮忙。

提前致谢。

弗朗索瓦

3 个答案:

答案 0 :(得分:2)

几周前,我正在寻找同样的事情。我决定在服务器端进行生成(在我的情况下是Node.js)。但是你可以在客户端使用jsPDF,就像你提到的那样。

不需要包装器,只需包含脚本,然后通过window对象访问jsPDF。包装将使测试更容易。

我不记得确切,但我认为它是这样的:

var doc = new window.jsPDF();

答案 1 :(得分:1)

PDF是一种复杂的文件格式,可能有一些用js构建的pdf解析器/生成器,但它们将受到限制。慢,你最好的选择是做服务器端的事情。

答案 2 :(得分:0)

HTML code:

  <button type="button" (click)="downloadPdf()" 
          class="button">download</button>

Component.ts:

  downloadPdf(){
  this.authService.downloadPdf().subscribe(data => {
  this.partnerDetails = data
  } ); }

routes.js:

router.get('/downloadPdf',partnerCntrl.downloadPdf);

partnercntrl:

module.exports.downloadPdf = function (req, res) {
     var fs = require('fs');
     var pdf = require('html-pdf');
     var html = fs.readFileSync('./test/businesscard.html', 'utf8');
     var options = { format: 'Letter' };
     pdf.create(html, options).toFile('./businesscard.pdf', function(err, res) {
     if (err) return console.log(err);
     console.log(res); // { filename: '/app/businesscard.pdf' }
     });