До PDFkit 0.5 у меня работало следующее (создание pdf через pdfkit/печать через ipp в CUPS):
var ipp = require("ipp");
var PDFDocument = require("pdfkit");
var doc = new PDFDocument;
doc.text("Hello World");
doc.output(function(pdf)){
var printer = ipp.Printer("http://127.0.0.1:631/printers/1");
var file = {
"operation-attributes-tag":{
"requesting-user-name": "User",
"job-name": "Print Job",
"document-format": "application/pdf"
},
data: new Buffer(pdf, "binary")
};
printer.execute("Print-Job", file, function (err, res) {
console.log("Printed: "+res.statusCode);
});
}
Начиная с PDFkit 0.5 метод output
устарел, но я не могу найти пример использования нового метода pipe
в моем сценарии. Если я не использую браузер, нужен ли мне такой модуль, как blob-stream?
doc.end()
, чтобы фактически запустить конечное событие. Я добавил редактирование для всех, кто сталкивается с этим новым в библиотеке. 07.01.2015fs.writeFileSync('test.pdf', Buffer.concat(buffers))
. Конечно, чтобы сделать это правильно, вы должны транслировать на него, и вам не понадобится буферизация:doc.pipe (fs.createWriteStream('test.pdf'))
24.07.2019doc.on('end')
. Потратил 4 часа, пытаясь заставить это работать, и ваше решение исправило это. Спасает меня от создания временного файла для загрузки в другое место, тогда как теперь я могу просто отправить Buffer напрямую. 12.06.2020