最近,我正在开发一个涉及html模板的函数。
此函数所做的是生成一个动态模板,并将其转换为图像。根据我的理解和我到目前为止研发的情况,它需要是一个读取流,然后才能转换成一个图像文件。
到目前为止,我还是这样做的
fs.writeFile('sample.html', '<html>...</html>', function(err){
fs.createReadStream('sample.html')
.pipe(convert()) //function from html-convert npm package
.pipe(fs.createWriteStream('out.png'))
});除了创建一个新文件之外,还有其他方法来将其转换为图像吗?
对此的任何帮助都将不胜感激。谢谢。
发布于 2017-10-25 06:25:20
使用node-webshot https://github.com/brenden/node-webshot
var webshot = require('webshot');
webshot('<html><body>Hello World</body></html>', 'hello_world.png', {siteType:'html'}, function(err) {
});更新
如果您想要将呈现的html截图作为base64,您可以这样做。
var renderStream = webshot('<html><body>Hello World</body></html>', {siteType:'html'});
renderStream.on('data', function(data) {
console.log(data.toString('base64'));
});发布于 2017-10-25 06:05:07
从How to create streams from string in Node.Js?获得的答案
var Readable = require('stream').Readable;
var s = new Readable();
s.push('<html>...</html>');
s.push(null)
.pipe(convert()) //function from html-convert npm package
.pipe(fs.createWriteStream('out.png'))
});https://stackoverflow.com/questions/46924767
复制相似问题