[]
SpreadJS 渲染引擎是,为了满足在后端导出 PDF 时,希望与前段保持高度一致时的解决方案。
通过在后端以 GcExcel-Extension 的方式,您可以引入,我们精心剥离过的,仅保留 SpreadJS 的渲染然能力的引擎,用来导出 PDF。
该方式的优点有:
高一致性,与 SpreadJS 的布局,格式保持一致。
注入式引用,轻松改造已有工程。
GcExcel 会负责字体的注册,不用额外注册字体。
带来上述优点的同时,该方案也有已知的一些缺陷,如果您选择该方案,请注意以下缺陷:
目前,渲染引擎不支持自定义内容,如:自定义单元格,自定义形状(Shape)等。
经测试,该方案性能低于 GcExcel 内置渲染引擎。
SpreadJS 渲染引擎,是包含在 GcExcel-Extension 组件包中,因此需要您先引入 GcExcel-Extension。
SpreadJSPDFRenderEngine spreadJSPDFRenderEngine = new SpreadJSPDFRenderEngine();
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.setPDFRenderEngin(spreadJSPDFRenderEngine);
Workbook workbook = new Workbook();
workbook.open("E:\\Downloads\\new.json");
// Workbook 保存 PDF 时,传入 PdfSaveOptions 来使用 PDFRenderEngine 保存 PDF
workbook.save("F:\\sample.pdf", pdfSaveOptions);
为了正确运行,系统必须安装所有必要的字体或指定一个包含所有所需字体的文件夹。
可以通过设 置 GcExcel 的 Workbook.FontsFolderPath 属性来指定字体文件夹路径。
若未指定,可能会导致字符显示异常。
当打印操作失败或超时(超过60秒)时,系统会输出日志以协助问题定位。
SpreadJS 渲染引擎在使用时会占用一定资源,因此在使用后应使用 close 方法释放资源。
SpreadJSPDFRenderEngine spreadJSPDFRenderEngine = new SpreadJSPDFRenderEngine();
// 使用引擎导出 PDF
// ……
// 使用结束后,手动释放资源
spreadJSPDFRenderEngine.close();
也可以使用 try 方法,自动调用资源释放
try (SpreadJSPDFRenderEngine spreadJSPDFRenderEngine = new SpreadJSPDFRenderEngine()) {
// 使用引擎导出 PDF
}