使用 NodeJs 我正在尝试使用 Grapecity SpreadJs 库编写一个小型 API。 在我的项目中,我安装了以下库:
当我尝试在 Workbook 实例上调用 savePDF() 时,出现此错误:savePDF() 不是函数。 这是我的代码:
GC.Spread.Sheets.LicenseKey = "myKey";
SJSExcel.LicenseKey = "myKey";
var wb = new GC.Spread.Sheets.Workbook();
var invoice = JSON.parse(fs.readFileSync("./invoice_data/invoice_example.json"));
wb.fromJSON(invoice);
wb.savePDF(function (blob) {
var fileName = 'download';
saveAs(blob, fileName + '.pdf');
},
function (error) {
console.log(error);
}
});
怎么了?
提前致谢。
我是 GrapeCity 技术参与团队的成员。我想分享的是 NodeJS 环境不支持 SpreadJS 的 PDF 导出。
原因是SpreadJS的PDF导出功能对DOM对象有很深的依赖。将 SpreadJS 导出到 PDF 时,会将图形上下文从画布更改为 PDF 上下文。这需要遍历所有的渲染逻辑并请求大量的 DOM 元素计算。 NodeJS 环境使用 Mock jsDom,无法提供所需的深度依赖,因此,NodeJS 环境无法支持 SpreadJS 导出 PDF。
如果您有任何疑问,请随时联系 SpreadJS 团队:提交票证