admin管理员组文章数量:1202577
I am getting a JPEG from a URL using node.js requests. I then convert the image to a base64 buffer and write it to the pdf document:
request({ url: url, encoding: null }, function (error, response, body) {
if (!error && response.statusCode == 200) {
var img = new Buffer(body, 'base64');
pdf.image(img, 0, 0);
callback(error, body);
}
});
I am getting the following error message:
events.js:160
throw er; // Unhandled 'error' event
^
Error: stream.push() after EOF
at readableAddChunk (_stream_readable.js:156:17)
at PDFDocument.Readable.push (_stream_readable.js:134:10)
at PDFDocument._write
I am getting a JPEG from a URL using node.js requests. I then convert the image to a base64 buffer and write it to the pdf document:
request({ url: url, encoding: null }, function (error, response, body) {
if (!error && response.statusCode == 200) {
var img = new Buffer(body, 'base64');
pdf.image(img, 0, 0);
callback(error, body);
}
});
I am getting the following error message:
events.js:160
throw er; // Unhandled 'error' event
^
Error: stream.push() after EOF
at readableAddChunk (_stream_readable.js:156:17)
at PDFDocument.Readable.push (_stream_readable.js:134:10)
at PDFDocument._write
Share
Improve this question
edited Aug 7, 2022 at 13:59
NightOwl
asked Sep 14, 2017 at 15:18
NightOwlNightOwl
1,0893 gold badges14 silver badges24 bronze badges
1
- Could it be that pdf.end() is getting called prematurely? – Dustin Simpson Commented Sep 16, 2017 at 17:21
3 Answers
Reset to default 12JS and Axios
example:
async function fetchImage(src) {
const image = await axios
.get(src, {
responseType: 'arraybuffer'
})
return image.data;
}
const logo = await fetchImage("https://i.imgur.com/2ff9bM7.png");
doc.image(logo, 0, 200);
Your code looks fine for me.
However, here is 100% working snippet:
request({ url, encoding: null }, (error, response, body) => {
if (!error && response.statusCode === 200) {
pdf.pipe(fs.createWriteStream('out.pdf'));
var img = new Buffer(body, 'base64');
pdf.image(img, 0, 0);
pdf.end();
}
});
TypeScript
and node-fetch
example:
const fetchImage = async (src: string) => {
const response = await fetch(src);
const image = await response.buffer();
return image;
};
const logo = await fetchImage("https://i.imgur.com/2ff9bM7.png");
doc.image(logo, 0, 200);
本文标签: javascriptHow to write images from URL to PDFkitStack Overflow
版权声明:本文标题:javascript - How to write images from URL to PDFkit? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1738651601a2104900.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论