我使用CarboneJS in NodeJS来生成报告。
这是文档:https://carbone.io/documentation.html#getting-started-with-carbone-js
使用CarboneJS很简单:
carbone.render('./node_modules/carbone/examples/simple.odt', data, function(err, result){
if (err) {
return console.log(err);
}
fs.writeFileSync('result.odt', result);
});
我想要做的是传递我自己的模板(它存储在数据库中),让我们调用它,例如MyFileFromDatabase,这样我就可以这样做:
const MyFileFromDatabase = new Buffer (myFile);
carbone.render(MyFileFromDatabase, data, function(err, result){
if (err) {
return console.log(err);
}
// write the result
fs.writeFileSync('result.odt', result);
});
我期待得到的东西: Carbone会把文件呈现出来。
我得到的是:
complete erreur sendErrorHttp: TypeError: Cannot read property 'length' of undefined
我不知道这样的功能是否存在,还是应该采用其他策略?比如使用流?
发布于 2021-06-22 13:42:32
目前,不可能将缓冲区传递给render函数。然而,它已经是一个特性请求,并且团队可能很快就会开始工作。以下是关于Github:https://github.com/carboneio/carbone/issues/119的问题
一个快速的替代方法是使用Carbone,它使您可以将模板作为缓冲区或base64字符串传递。您每月可以免费获得100个呈现,这里是https://carbone.io/api-reference.html#carbone-render-api文档-- node可以轻松调用该API。
当缓冲区功能退出时,我将更新线程!
https://stackoverflow.com/questions/66962681
复制相似问题