NodeJS jsPDF addImage выдает ошибку при добавлении PNG - PullRequest
0 голосов
/ 02 марта 2019

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

...