添加PNG

时间:2019-03-01 23:47:18

标签: node.js typescript png jspdf

我不确定是哪里出了问题。我只是想添加一个PNG图片,此库拒绝工作。为了使这个库仍然无法工作,我不得不做太多的事情,我可能不得不搬到另一个库,但是在我这样做之前,我想问一个问题。我的代码如下。

import * as fs from 'fs';
import * as PNG from 'png-js';
import * as atob from 'atob';
import * as btoa from 'btoa';

export interface Global extends NodeJS.Global {
    window: any;
    navigator: any;
    btoa: any;
    atob: any;
    PNG: any;
}

declare var global: Global;
global.window = {document: {createElementNS: () => ({})}};
global.navigator = {};
global.btoa = btoa;
global.atob = atob;
global.PNG = PNG;

import * as jsPDF from 'jspdf/dist/jspdf.node.debug';

export class PDFGenerator {

    constructor() {
    }

    public async generatePDF(): void {
       const doc = new jsPDF('l', 'pt', 'a3');
       const image = fs.readFileSync('src/assets/images/logo.png');
       const width = doc.internal.pageSize.getWidth();
       doc.addImage(image.toString('base64'), 'PNG', (width / 2), 0);
       const data = doc.output();
       fs.writeFileSync(`public/reports/test-report.pdf`, data);

   }
}

运行此命令时,PDF仅打印文本,并且显示error: Cannot read property 'buffer' of undefinedfn is not a function。我已将其追溯到名为decodePixels().buffer的函数。这看起来像是代码中的错误,但是由于似乎没人抱怨它,因此我认为我做错了什么。任何帮助都将不胜感激。

0 个答案:

没有答案