Я не совсем уверен, что не так.Я просто пытаюсь добавить изображение 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
.Это похоже на ошибку в коде, но, поскольку никто не жаловался на это, я предполагаю, что я делаю что-то не так.Любая помощь будет признательна.