Node.js: 通过 pdfmake 将 SVG 添加到 PDF 的特定页面

Node.js: Adding SVG to a specific page of PDF by pdfmake

我正在尝试通过 pdfmake 创建 PDF 内容。但是,pdfmake 不支持在 v0.1.38 中添加 SVG。 所以我使用 SVG-to-PDFKit 来实现。这是我的代码:

var printer = new pdfMakePrinter(fontDescriptors);

var doc = printer.createPdfKitDocument(pdfDoc);

SVGtoPDF(doc, s.data, s.x, s.y, s.options); // add this line for SVG-to-PDFKit to insert SVG while s contain SVG data

var chunks = [];
var result;

doc.on('data', function(chunk) {
    chunks.push(chunk);
});
doc.on('end', function() {
    result = Buffer.concat(chunks);
    resolve(result);
});
doc.end();

SVG 已成功添加到最后一页。如何将 SVG 添加到特定页面?

阅读源代码和document后,添加{ bufferPages: true }完美解决您的需求。

var printer = new pdfMakePrinter(fontDescriptors);

var doc = printer.createPdfKitDocument(pdfDoc, { bufferPages: true }); // magic here!
doc.switchToPage(x); // to page x, where x start from 0

SVGtoPDF(doc, s.data, s.x, s.y, s.options); // add this line for SVG-to-PDFKit to insert SVG while s contain SVG data

var chunks = [];
var result;

doc.on('data', function(chunk) {
    chunks.push(chunk);
});
doc.on('end', function() {
    result = Buffer.concat(chunks);
    resolve(result);
});
doc.end();