我不确定是哪里出了问题。我只是想添加一个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 undefined
和fn is not a function
。我已将其追溯到名为decodePixels().buffer
的函数。这看起来像是代码中的错误,但是由于似乎没人抱怨它,因此我认为我做错了什么。任何帮助都将不胜感激。