Конвертировать Excel в PDF программно - PullRequest
0 голосов
/ 09 февраля 2019

Я использую модуль «exceljs» в своем проекте Angular для создания файла Excel.Вместо того, чтобы экспортировать его в файл Excel, я сначала хотел бы преобразовать его в PDF, а затем загрузить как таковой.

Я могу успешно экспортировать и сохранить этот файл на моем компьютере:

    workbook.xlsx.writeBuffer().then((data) => {
        console.log(data); // Uint8Array
        console.log(data.buffer); // ArrayBuffer
        console.log(new Blob([data])); // Blob

        // code I use to export it as an Excel File
        const blob = new Blob([data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'});
        const test = FileSaver.saveAs(blob, 'test.xlsx');
    });

Как написано выше, вместо файла Excel я хотел бы экспортировать его в виде файла PDF.

Из кода вы можете видеть, что «exceljs» предоставляет мне поток данных Uint8Array, из которого яможет получить ArrayBuffer, или я могу преобразовать его в BLOB-объект.

Я пытался использовать это безуспешно:

workbook.xlsx.writeBuffer().then((data) => {
    const blob = new Blob([data], { type: 'application/pdf' });
    // or with 'application/octet-stream' type
    // const blob = new Blob([data], { type: 'application/octet-stream' });
    FileSaver.saveAs(blob, 'test.pdf');
});`

Файл PDF экспортируется, но его нельзя открыть.Я получаю сообщение об ошибке типа «Файл поврежден».

Спасибо за всю помощь в продвинутом.

...