【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

一、特殊名词介绍

二、背景、场景介绍

帆软报表产品中除了导出文件类型分类之外,对于pdf的导出场景还进行了额外的细分。常见的有三种,分别是普通导出,打印预览,自动打印。当用户需要做一些其他的pdf细分导出或者对现有的某中细分类型导出进行调整时,可以使用PDFExporterCreator接口处理。

该接口常用于对pdf某一种特定导出类型进行调整的需求中。对于所有pdf导出均涉及到的细分处理,则不建议使用这个接口。

三、接口介绍

PDFExporterCreator.java
package com.fr.io.exporter;

import com.fr.stable.fun.mark.Immutable;

/**
 * Created by juhaoyu on 2016/12/5.
 */
public interface PDFExporterCreator extends Immutable {

    String MARK_STRING = "PDFExporterCreator";

    int CURRENT_LEVEL = 1;

    @Deprecated
    PDFExporterProcessor createPDFExporter(boolean isPrint);

    /**
     * PDF 导出
     * @param exportType 导出类型:普通导出,打印预览,自动打印
     */
    PDFExporterProcessor createPDFExporter(PDFExportType exportType);
}

四、支持版本

产品线

版本

支持情况

备注

FR8.0支持
FR9.0支持
FR10.0支持
BI3.6支持不支持仪表板
BI4.0支持不支持仪表板
BI5.1支持不支持仪表板
BI5.1.2支持不支持仪表板
BI5.1.3支持不支持仪表板

五、插件注册

plugin.xml
<extra-core>
        <PDFExporterCreator class="your class name"/>
</extra-core>

六、原理说明

所有的PDF导出都会通过PDFExporterFactory创建导出类实例。在PDFExporterFactory被加载时,会读取插件中申明的PDFExporterCreator。当PDFExporterFactory#getPDFExporter方法执行时,会通过加载的PDFExporterCreator实例进行创建具体的导出实例。

七、特殊限制说明

该接口是Immutable的,也就是他是独占的,如果多个插件都有使用到,那么只会生效其中的一个。

该接口会受到前置接口的影响,开发时需要注意确认目标环境的插件是否存在冲突的可能。

PDFExporterProcessor是AppExporter的进一步抽象,没有增加任何操作。开发者在实际开发时,不要直接实现这个接口,应该根据自己要处理的细分类型选择继承PDFExporter、PDFExporterForPrint、PDFEmbExporter三个中的一个。

PDFExportTypeAppExporter生效场景
EXPORTPDFExporter

createPDFExporter( PDFExportType type )

1、点击设计器本身文件的导出pdf

2、定时调度设置pdf附件


createPDFExporter(boolean isPrint )

1、预览模板的导出pdf

2、模板不预览导出pdf

3、预览模板邮件发送pdf附件

PRINTPDFExporterForPrint打印预览时生效。10.0中没有用
EMBED_PRINTPDFEmbExporter

createPDFExporter( PDFExportType type )

10.0的报表打印

八、常用链接

demo地址:demo-pdf-exporter-creator

ExportOperateProvider

ExportExtensionProcessor

FormExportProcessor

com.fr.report.fun.ExcelExportAppProvider

com.fr.report.fun.CommentExcelProcessor

com.fr.report.fun.FormatActionProvider

com.fr.stable.fun.ExcelExportCellValueProvider

九、开源案例

免责声明:所有文档中的开源示例,均为开发者自行开发并提供。仅用于参考和学习使用,开发者和官方均无义务对开源案例所涉及的所有成果进行教学和指导。若作为商用一切后果责任由使用者自行承担。

  • No labels