在节点中生成PDF格式的报告

Generate a report in PDF format in nodes

我正在生成一个表格(数据网格)报告,它位于节点的文本文件中。我想以 PDF 格式生成相同的报告,以便报告不可编辑。我在互联网上搜索过,但只能通过 HTML 找到,但我不想使用 HTML.

这可能吗?如果是那么怎么办?

您可以使用 PDFKit:http://pdfkit.org/ 来做到这一点我相信,这是一个简单的例子,我现在已经将 lines 设为全局。

var content = [];
for(var i = 0; i < 30; i++) {
    content.push('Content line ' + i);
}

lines =[]; lines = Array.from(Array(content.length).keys()).map((n) => content[n]);  

var fs = require('fs');
var PDFDocument = require('pdfkit');

function printLinesToPDF() {

    return new Promise((resolve) => {

        var pdf = new PDFDocument({
          size: 'A4', 
          info: {
            Title: 'Example file',
            Author: 'Me',
          }
        });

        console.log('Printing %d line(s) to PDF', lines.length);
        lines.forEach((line) => pdf.text(line));

        var stream = fs.createWriteStream('./example.pdf');
        pdf.pipe(stream);

        pdf.flushPages();
        pdf.end();

        stream.on('finish', function() {
            resolve();
        });

    });
}

printLinesToPDF().then(() => {
    console.log('All done');
});