node.js - 通过 CarboneJS 使用我自己的存储在数据库中的模板
问题描述
我在NodeJS中使用 CarboneJS,以生成报告。
这是文档: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
我不知道这样的功能是否存在,或者我应该采用其他策略吗?比如使用 Streams?
解决方案
目前,无法将缓冲区传递给渲染函数。但是,它已经是一个功能请求,团队可能很快就会着手处理它。这是 Github 上的问题:https ://github.com/carboneio/carbone/issues/119
一个快速的替代方法是使用 Carbone Render API,它使您可以将模板作为缓冲区或 base64 字符串传递。您每月免费获得 100 次渲染 这是文档https://carbone.io/api-reference.html#carbone-render-api 可以使用节点 SDK 轻松调用 API。
当缓冲区功能结束时,我将更新线程!
推荐阅读
- sql - 如何在数据库中存储某物的状态?
- c# - 如何在我的 Xamarin.Forms 应用程序的 UWP 版本中显示图像
- regex - 正则表达式按句点拆分,除非在括号之间或在大括号之间或在双引号之间
- uwp - 当用户在 UWP 应用的 UI 上切换开关时,如何更改情节提要动画?
- c# - 如何使用 GridView 添加图像?
- html - 如果我修改了边距,徽标如何保持在同一位置
- python - 如何在 python 3.8 中使用 pipenv 为现有 django 项目激活虚拟环境
- php - 即使凭据不正确,PHP 中的会话变量也允许我登录
- package - 使用 JuliaPro 安装 Julia 包时出现问题
- java - 在泛型方法的参数上使用迭代器