在 Angular 2 / TypeScript 中使用 pdfMake 和数据输入

Use pdfMake with data input in Angular 2 / TypeScript

我正在尝试根据 Angular 2 项目中的数据输入创建 PDF。为此,我整合了 pdfMake。创建静态 PDF 工作正常,但当我尝试打印出一些值时,它出错了。

请看看这个笨蛋:https://plnkr.co/edit/7tPFTAjKWwaRp1IbT0Tg?p=preview

我设法将一个对象放入我的 buildPdf 函数中,它被记录到控制台。但是当我尝试将我的一个对象值添加到 pdfMake 文档定义时,我收到错误消息:

ORIGINAL EXCEPTION: TypeError: Cannot read property 'firstName' of undefined

var docDefinition = {
    content: [{
        text: 'My name is: ' + pdfContent.firstName  + ' ' + pdfContent.lastName + '.'
    }]
}

我试图通过用打字稿重写我的 buildPdf.js 来排除打字问题,它看起来像这样:

var buildPdf: (value: {firstName: string, lastName: string}) => any =
function(value: {firstName: string, lastName: string}): any {
    let docDefinition:any = {
        content: [{
            text: 'This is a test.'
        }]
    }
    console.log(value);
    return docDefinition;
}

不过,结果还是一样。

为什么我可以 console.log 对象但不能访问其属性?我错过了什么?

好像是这条线引起的

buildPdf: any = new buildPdf();

我不明白你需要它做什么。它抛出是因为它访问了传递的值但是这里 none 被传递了。

请参阅 https://plnkr.co/edit/NPLHxVgC5LthA4g2WpUx?p=preview 了解工作中的 Plunker。