如何用hummus.js保存已创建的PDF文件,而不是将其作为路由的响应发送?我找不到任何例子。
res.writeHead(200, { "Content-Type": "application/pdf" });
var hummus = require("hummus");
var pdfWriter = hummus.createWriter(new hummus.PDFStreamForResponse(res));
var page = pdfWriter.createPage(0, 0, 240.94512, 155.9052);
pdfWriter
.startPageContentContext(page)
.writeText("Hello " + (req.query.id ? req.query.id : "World"), 0, 100, {
font: pdfWriter.getFontForFile(__dirname + "\\arial.ttf"),
size: 20,
colorspace: "gray",
color: 0x00
});
pdfWriter.writePage(page);
var cxt = pdfWriter.startPageContentContext(page);
cxt
.drawImage(0, 0, __dirname + "\\testCard.png", {
transformation: { width: 240.94512, height: 155.9052 }
})
// .drawImage(10, 10, __dirname + "\\test.jpg");
.drawImage(10, 10, __dirname + "\\simple.pdf");
// .drawImage(200,500,'./TestMaterials/images/png/original.png')
pdfWriter.writePage(page);
pdfWriter.end();
res.end();ps:我试过5种不同的node.js pdf库。不知何故,他们谁也做不了所有这些事情:
发布于 2022-06-23 20:11:42
由于我不知何故浪费了很多时间来完成这个任务,所以我不会删除我愚蠢的问题,相反,我会为我的愚蠢问题提供一个答案:
与其向编写器提供一个新的hummus.PDFStreamForResponse(res)对象,您只需提供一个路径:
var pdfWriter = hummus.createWriter("./pathAndPdfName.pdf");所以整个代码如下所示:
var hummus = require("hummus");
var pdfWriter = hummus.createWriter("./outPut.pdf");
var page = pdfWriter.createPage(0, 0, 240.94512, 155.9052);
var cxt = pdfWriter.startPageContentContext(page);
cxt
.drawImage(0, 0, __dirname + "\\testCard.png", {
transformation: { width: 240.94512, height: 155.9052 }
})
.drawImage(10, 10, __dirname + "\\test.jpg");
pdfWriter.writePage(page);
var page1 = pdfWriter.createPage(0, 0, 240.94512, 155.9052);
var cxt1 = pdfWriter.startPageContentContext(page1);
cxt1.drawImage(0, 0, __dirname + "\\testCard.png", {
transformation: { width: 240.94512, height: 155.9052 }
});
pdfWriter.writePage(page1);
pdfWriter.end();ps:如果您知道如何使用base64字符串作为ctx.drawImage()的图像输入,那就太好了。
https://stackoverflow.com/questions/72735847
复制相似问题