我尝试将xlsx文件转换为html表,然后将html转换为pdf。
我这样做是因为这是将xlsx转换为pdf的唯一方法。

我使用sheetJS和wkhtmltopdf包。

这是我的代码:

const XLSX = require('xlsx');
const wkhtmltopdf = require('wkhtmltopdf');

router.get('/xlsx', async (request,  response) => {
    var xlsFile = fs.readFileSync('./uploads/temp/excel.xlsx');
    var html = XLSX.read(xlsFile, { type:'buffer' });
    const finalFile = XLSX.write(html, { type: 'binary', bookType: 'html' });
    wkhtmltopdf(finalFile, {
        output: './uplods/temp/xlsx.pdf',
        'viewport-size': '1280x1024',
        'page-width': '400',
        'page-height': '600'
    });
});


错误:

events.js:298
      throw er; // Unhandled 'error' event
      ^

Error: write EPIPE
    at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:92:16)
Emitted 'error' event on Socket instance at:
    at errorOrDestroy (internal/streams/destroy.js:128:12)
    at onwriteError (_stream_writable.js:463:3)
    at onwrite (_stream_writable.js:484:7)
    at internal/streams/destroy.js:60:7
    at Socket._destroy (net.js:677:5)
    at Socket.destroy (internal/streams/destroy.js:55:8)
    at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:93:12) {
  errno: -32,
  code: 'EPIPE',
  syscall: 'write'
}
[nodemon] app crashed - waiting for file changes before starting...

最佳答案

我的一位同事使用wkhtmltopdf时遇到相同的错误,但是我的系统运行良好。我在Linux上使用节点版本13.9.0。

我使用npm search wkhtmltopdf来查看节点模块的版本
node-wkhtmltopdf 2.0.0
wkhtmltopdf 0.3.4

受影响的系统是
os:mac os mojavi版本:10.14.6
节点版本:13.8.0

您使用什么操作系统,软件包和节点版本?

关于node.js - 尝试将xlsx文件转换为html,然后转换为pdf文件,但收到NodeJS错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60490727/

10-11 23:53
查看更多