[]
        
(Showing Draft Content)

SpreadJS 渲染引擎

概要

SpreadJS 渲染引擎是,为了满足在后端导出 PDF 时,希望与前段保持高度一致时的解决方案。

通过在后端以 GcExcel-Extension 的方式,您可以引入,我们精心剥离过的,仅保留 SpreadJS 的渲染然能力的引擎,用来导出 PDF。

该方式的优点有:

  • 高一致性,与 SpreadJS 的布局,格式保持一致。

  • 注入式引用,轻松改造已有工程。

  • GcExcel 会负责字体的注册,不用额外注册字体。

带来上述优点的同时,该方案也有已知的一些缺陷,如果您选择该方案,请注意以下缺陷:

  • 目前,渲染引擎不支持自定义内容,如:自定义单元格,自定义形状(Shape)等。

  • 经测试,该方案性能低于 GcExcel 内置渲染引擎。

如何使用

1. 引入 Extension

SpreadJS 渲染引擎,是包含在 GcExcel-Extension 组件包中,因此需要您先引入 GcExcel-Extension。

2. 替换默认渲染引擎

SpreadJSPDFRenderEngine spreadJSPDFRenderEngine = new SpreadJSPDFRenderEngine();

PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.setPDFRenderEngin(spreadJSPDFRenderEngine);

3. 使用 SpreadJS 渲染引擎导出 PDF

Workbook workbook = new Workbook();

workbook.open("E:\\Downloads\\new.json");

// Workbook 保存 PDF 时,传入 PdfSaveOptions 来使用 PDFRenderEngine 保存 PDF
workbook.save("F:\\sample.pdf", pdfSaveOptions);

注意事项

资源释放

SpreadJS 渲染引擎在使用时会占用一定资源,因此在使用后应使用 close 方法释放资源。

SpreadJSPDFRenderEngine spreadJSPDFRenderEngine = new SpreadJSPDFRenderEngine();
// 使用引擎导出 PDF
// ……
// 使用结束后,手动释放资源
spreadJSPDFRenderEngine.close();

也可以使用 try 方法,自动调用资源释放

try (SpreadJSPDFRenderEngine spreadJSPDFRenderEngine = new SpreadJSPDFRenderEngine()) {
// 使用引擎导出 PDF
}